/// <summary> /// This is the entry point of the service host process. /// </summary> private static void Main() { try { const string ApplicationInsightsEventListenerId = "ApplicationInsightsEventListener"; var configProvider = new FabricConfigurationProvider(ApplicationInsightsEventListenerId); ApplicationInsightsEventListener aiListener = null; if (configProvider.HasConfiguration) { aiListener = new ApplicationInsightsEventListener(configProvider, new FabricHealthReporter(ApplicationInsightsEventListenerId)); } ServiceRuntime.RegisterServiceAsync("MyApiType", context => new MyApi(context)).GetAwaiter().GetResult(); ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(MyApi).Name); // Prevents this host process from terminating so services keeps running. Thread.Sleep(Timeout.Infinite); GC.KeepAlive(aiListener); } catch (Exception e) { ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString()); throw; } }
public static async Task <EventHubsConnectionStringBuilder> GetEventHubConnectionStringBuilder(string sectionName, Action <string> onFailure, CancellationToken ct) { var configuration = new FabricConfigurationProvider(sectionName); if (!configuration.HasConfiguration) { await configuration.RejectConfigurationAsync($"No {sectionName} section", onFailure, ct).ConfigureAwait(false); return(null); } try { var endpointAddress = await configuration.TryReadConfigurationAsync("EndpointAddress", onFailure, ct).ConfigureAwait(false); var builder = new EventHubsConnectionStringBuilder( new Uri($"amqps://{endpointAddress}"), await configuration.TryReadConfigurationAsync("EntityPath", onFailure, ct).ConfigureAwait(false), await configuration.TryReadConfigurationAsync("SharedAccessKeyName", onFailure, ct).ConfigureAwait(false), await configuration.TryReadConfigurationAsync("SharedAccessKey", onFailure, ct).ConfigureAwait(false) ); return(builder); } catch (Exception ex) { ct.ThrowIfCancellationRequested(); #pragma warning disable ERP023 // Only ex.Message property was observed in exception block! await configuration.RejectConfigurationAsync($"Exception creating connection string builder: {ex.Message}", onFailure, ct).ConfigureAwait(false); #pragma warning restore ERP023 // Only ex.Message property was observed in exception block! return(null); } }
public static void Initialise() { var applicationInsightsConfiguration = new FabricConfigurationProvider("ApplicationInsights"); if (applicationInsightsConfiguration.HasConfiguration) { TelemetryConfiguration.Active.InstrumentationKey = applicationInsightsConfiguration.GetValue("InstrumentationKey"); } }
protected virtual async Task <Configuration> TryConfigureAsync(CancellationToken ct) { try { void onFailure(string msg) => Log.Error("Error configuring: {Msg}", msg); var client = await EventHubConfiguration.GetEventHubClientAsync(ConfigurationSectionName, onFailure, ct).ConfigureAwait(false); var configuration = new FabricConfigurationProvider(ConfigurationSectionName); var consumerGroup = await configuration.TryReadConfigurationAsync("ConsumerGroup", onFailure, ct).ConfigureAwait(false); var partitions = await GetPartitionsAsync(client).ConfigureAwait(false); var offsets = await StateManager.GetOrAddAsync <IReliableDictionary <string, string> >(OffsetsName).ConfigureAwait(false); return(new Configuration(client, consumerGroup, partitions, offsets)); } catch (Exception ex) { ct.ThrowIfCancellationRequested(); Log.Fatal(ex, "Error configuring event hubs: {Exception}", ex.Message); throw; } }
public static LoggerConfiguration CreateDefaultLoggerConfiguration() { var configurationProvider = new FabricConfigurationProvider("SeqConfig"); return(CreateLoggerConfiguration(configurationProvider)); }
private static ILogger CreaterDefaultLogger() { var configurationProvider = new FabricConfigurationProvider("SeqConfig"); return(CreateLogger(configurationProvider)); }