static void Main(string[] args) { // optimizing IOCP performance int minWorkerThreads; int minCompletionPortThreads; ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionPortThreads); ThreadPool.SetMinThreads(minWorkerThreads, Math.Max(16, minCompletionPortThreads)); int threadCount = Environment.ProcessorCount; if (args.Length > 0) { threadCount = int.Parse(args[0]); } var eventListener = new ObservableEventListener(); eventListener.LogToConsole(); eventListener.EnableEvents(BootstrapperEventSource.Log, EventLevel.Verbose); eventListener.EnableEvents(MqttIotHubAdapterEventSource.Log, EventLevel.Verbose); eventListener.EnableEvents(ChannelEventSource.Log, EventLevel.Verbose); eventListener.EnableEvents(BootstrapEventSource.Log, EventLevel.Verbose); eventListener.EnableEvents(ExecutorEventSource.Log, EventLevel.Verbose); eventListener.EnableEvents(MqttEventSource.Log, EventLevel.Verbose); try { var cts = new CancellationTokenSource(); var certificate = new X509Certificate2("protocol-gateway.contoso.com.pfx", "password"); var settingsProvider = new AppConfigSettingsProvider(); BlobSessionStatePersistenceProvider blobSessionStateProvider = BlobSessionStatePersistenceProvider.CreateAsync( settingsProvider.GetSetting("BlobSessionStatePersistenceProvider.StorageConnectionString"), settingsProvider.GetSetting("BlobSessionStatePersistenceProvider.StorageContainerName")).Result; TableQos2StatePersistenceProvider tableQos2StateProvider = TableQos2StatePersistenceProvider.CreateAsync( settingsProvider.GetSetting("TableQos2StatePersistenceProvider.StorageConnectionString"), settingsProvider.GetSetting("TableQos2StatePersistenceProvider.StorageTableName")).Result; var bootstrapper = new Bootstrapper(settingsProvider, blobSessionStateProvider, tableQos2StateProvider); Task.Run(() => bootstrapper.RunAsync(certificate, threadCount, cts.Token), cts.Token); while (true) { string input = Console.ReadLine(); if (input != null && input.ToLowerInvariant() == "exit") { break; } } cts.Cancel(); bootstrapper.CloseCompletion.Wait(TimeSpan.FromSeconds(20)); } finally { eventListener.Dispose(); } }
public void AndSettingValueIsNull_ThenThrowException() { var settingKey = "MyBadSetting"; var sut = new AppConfigSettingsProvider(new PropertiesSettingsProvider()); Action act = () => sut.GetSetting(settingKey); act.ShouldThrow <ConfigurationErrorsException>(); }
public void ThenReturnSettingValue() { var settingKey = "MySetting"; var settingValue = "hello world"; var sut = new AppConfigSettingsProvider(new PropertiesSettingsProvider()); Properties.Settings.Default[settingKey] = settingValue; var setting = sut.GetSetting(settingKey); setting.Should().Be(settingValue); }
static void BootstrapTcpServer() { int minWorkerThreads; int minCompletionPortThreads; ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionPortThreads); ThreadPool.SetMinThreads(minWorkerThreads, Math.Max(16, minCompletionPortThreads)); int threadCount = Environment.ProcessorCount; try { var cts = new CancellationTokenSource(); var certificate = new X509Certificate2("protocol-gateway.contoso.com.pfx", "password"); var settingsProvider = new AppConfigSettingsProvider(); BlobSessionStatePersistenceProvider blobSessionStateProvider = BlobSessionStatePersistenceProvider.CreateAsync( settingsProvider.GetSetting("BlobSessionStatePersistenceProvider.StorageConnectionString"), settingsProvider.GetSetting("BlobSessionStatePersistenceProvider.StorageContainerName")).Result; var bootstrapper = new Bootstrapper(settingsProvider, blobSessionStateProvider); Task.Run(() => bootstrapper.RunAsync(certificate, threadCount, cts.Token, ValidateClientCertificate), cts.Token); while (true) { string input = Console.ReadLine(); if (input != null && input.ToLowerInvariant() == "exit") { break; } } cts.Cancel(); bootstrapper.CloseCompletion.Wait(TimeSpan.FromSeconds(20)); } catch (Exception ex) { } }
public void TryGetMissingSetting() { Assert.Throws <ConfigurationErrorsException>(() => _appConfigSettings.GetSetting("FailToGetSetting")) .Message.Should().Be("Setting with key FailToGetSetting is missing"); }