示例#1
0
        /// <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;
            }
        }
示例#2
0
        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;
            }
        }
示例#5
0
        public static LoggerConfiguration CreateDefaultLoggerConfiguration()
        {
            var configurationProvider = new FabricConfigurationProvider("SeqConfig");

            return(CreateLoggerConfiguration(configurationProvider));
        }
示例#6
0
        private static ILogger CreaterDefaultLogger()
        {
            var configurationProvider = new FabricConfigurationProvider("SeqConfig");

            return(CreateLogger(configurationProvider));
        }