public static void LoadMultipleSubmodels() { ServerSettings submodelRepositorySettings = ServerSettings.CreateSettings(); submodelRepositorySettings.ServerConfig.Hosting.ContentPath = "Content"; submodelRepositorySettings.ServerConfig.Hosting.Urls.Add("http://+:6999"); MultiSubmodelHttpServer multiServer = new MultiSubmodelHttpServer(submodelRepositorySettings); SubmodelRepositoryServiceProvider repositoryService = new SubmodelRepositoryServiceProvider(); for (int i = 0; i < 3; i++) { Submodel submodel = new Submodel() { IdShort = "MultiSubmodel_" + i, Identification = new Identifier("http://basys40.de/submodel/MultiSubmodel/" + Guid.NewGuid().ToString(), KeyType.IRI), Description = new LangStringSet() { new LangString("de-DE", i + ". Teilmodell"), new LangString("en-US", i + ". Submodel") }, Administration = new AdministrativeInformation() { Version = "1.0", Revision = "120" }, SubmodelElements = new ElementContainer <ISubmodelElement>() { new Property <string>() { IdShort = "Property_" + i, Value = "TestValue_" + i }, new SubmodelElementCollection() { IdShort = "Coll_" + i, Value = new ElementContainer <ISubmodelElement>() { new Property <string>() { IdShort = "SubProperty_" + i, Value = "TestSubValue_" + i } } } } }; var submodelServiceProvider = submodel.CreateServiceProvider(); repositoryService.RegisterSubmodelServiceProvider(submodel.IdShort, submodelServiceProvider); } List <HttpEndpoint> endpoints = multiServer.Settings.ServerConfig.Hosting.Urls.ConvertAll(c => new HttpEndpoint(c.Replace("+", "127.0.0.1"))); repositoryService.UseDefaultEndpointRegistration(endpoints); multiServer.SetServiceProvider(repositoryService); multiServer.ApplicationStopping = () => { for (int i = 0; i < repositoryService.ServiceDescriptor.SubmodelDescriptors.Count; i++) { registryClient.DeleteSubmodel("http://basyx.de/shells/MultiAAS/" + i, repositoryService.ServiceDescriptor.SubmodelDescriptors[i].IdShort); } }; multiServer.RunAsync(); var shells = registryClient.RetrieveAssetAdministrationShells(); var shell = shells.Entity?.FirstOrDefault(f => f.Identification.Id.Contains("SimpleAAS")); for (int i = 0; i < repositoryService.ServiceDescriptor.SubmodelDescriptors.Count; i++) { registryClient.CreateSubmodel("http://basyx.de/shells/MultiAAS/" + i, repositoryService.ServiceDescriptor.SubmodelDescriptors[i]); if (shell != null) { registryClient.CreateSubmodel(shell.Identification.Id, repositoryService.ServiceDescriptor.SubmodelDescriptors[i]); } } }