The configuration can be placed in the app.config file of your application. Add your settings within a UaApplicationConfiguration section.
For details look at the provided app.config files in our Client and Server examples.
InMemoryConfiguration allows to set the configuration in code. The following code from our ServerGettingStarted example shows how it can be used:
static void ConfigureOpcUaApplicationFromCode()
{
var configuration = new ConfigurationInMemory();
string enviromentPath = "%CommonApplicationData%";
if (!PlatformUtils.IsWindows()) enviromentPath = "%LocalApplicationData%";
configuration.ApplicationName = "UnifiedAutomation GettingStartedServer";
configuration.ApplicationUri = "urn:localhost:UnifiedAutomation:GettingStartedServer";
configuration.ProductName = "UnifiedAutomation GettingStartedServer";
configuration.SetSecurity(PlatformUtils.CombinePath(enviromentPath, "UnifiedAutomation", "pki"), "CN=GettingStartedServer/O=UnifiedAutomation/DC=localhost");
configuration.BaseAddresses.Add("opc.tcp://localhost:48030");
configuration.SecurityProfiles = new ListOfSecurityProfiles();
configuration.SecurityProfiles.Add(new SecurityProfile() { ProfileUri = SecurityProfiles.Basic256Sha256, Enabled = true });
configuration.SecurityProfiles.Add(new SecurityProfile() { ProfileUri = SecurityProfiles.Aes128Sha256RsaOaep, Enabled = true });
configuration.SecurityProfiles.Add(new SecurityProfile() { ProfileUri = SecurityProfiles.Aes256Sha256RsaPss, Enabled = true });
configuration.SecurityProfiles.Add(new SecurityProfile() { ProfileUri = SecurityProfiles.None, Enabled = true });
TraceSettings trace = new TraceSettings();
trace.MasterTraceEnabled = false;
trace.TraceFile = PlatformUtils.CombinePath(enviromentPath, "UnifiedAutomation", "Logs", FilePathUtils.MakeValidFileName(configuration.ApplicationName) + ".log.txt");
trace.MaxLogFileBackups = 3;
trace.ModuleSettings = new ModuleTraceSettings[]
{
new ModuleTraceSettings() { ModuleName = "UnifiedAutomation.Stack", TraceEnabled = true },
new ModuleTraceSettings() { ModuleName = "UnifiedAutomation.Server", TraceEnabled = true },
};
configuration.Set<TraceSettings>(trace);
InstallationSettings installation = new InstallationSettings();
installation.GenerateCertificateIfNone = true;
installation.DeleteCertificateOnUninstall = true;
configuration.Set<InstallationSettings>(installation);
configuration.ServerSettings = new ServerSettings()
{
ProductName = "UnifiedAutomation GettingStartedServer",
DiscoveryRegistration = new DiscoveryRegistrationSettings()
{
Enabled = false
},
Capabilities = new string[]
{
"DA"
},
ProductUri = "urn:unifiedautomation.gettingstarted"
};
ApplicationInstanceBase.Default.SetApplicationSettings(configuration);
}
If no configuration method is found, a default configuration is generated automatically. This is only for testing purposes. We highly recommended to use your own configuration.