public void Shutdown() { ClientProxyBase.Faulted -= ClientProxyBase_Faulted; mFaultHandlerStopEvent = new AutoResetEvent(false); mFaultHandlerRunning = false; mFaultHandlerEvent.Set(); mFaultHandlerStopEvent.WaitOne(); mFaultHandlerStopEvent.Dispose(); mFaultHandlerEvent.Dispose(); ClientProxyBase.Close(); }
protected void Application_End() { ClientProxyBase.Faulted -= ClientProxyBase_Faulted; mFaultHandlerStopEvent = new AutoResetEvent(false); mFaultHandlerRunning = false; mFaultHandlerEvent.Set(); mFaultHandlerStopEvent.WaitOne(); mFaultHandlerStopEvent.Dispose(); mFaultHandlerEvent.Dispose(); ClientProxyBase.Close(); if (LOGGER.IsInfoEnabled) { LOGGER.Info("GLOBAL_ASAX, application stop."); } }
public void Initialize() { // initialize communication system ClientProxyBase.SourceId = ClientIdGenerator.GenerateId(ClientTypeEnum.External); ClientProxyBase.ConfigureClientProxyForCallback(new ConfigurationForCallback("TcpEndpointForCallbackMode")); ClientProxyBase.Faulted += ClientProxyBase_Faulted; try { ClientProxyBase.Open(); } catch (Exception ex) { LOGGER.Error(string.Format("Failed to open connection. Reason: {0}", ex.Message)); mFaultHandlerEvent.Set(); } mFaultHandlerThread = new Thread(new ThreadStart(FaultHandlerThreadMain)); mFaultHandlerThread.Name = "FaultHandlerThread"; mFaultHandlerThread.Start(); }
private void FaultHandlerThreadMain() { while (mFaultHandlerRunning) { mFaultHandlerEvent.WaitOne(); if (mFaultHandlerRunning) { try { ClientProxyBase.Open(); } catch (Exception ex) { LOGGER.Error(string.Format("Failed to open connection. Reason: {0}", ex.Message)); Thread.Sleep(1000); } } } mFaultHandlerStopEvent.Set(); }
public void Initialize() { // create wcf binding and endpoint address ClientProxyBase.SourceId = ClientIdGenerator.GenerateId(ClientTypeEnum.External); NetTcpBinding binding = new NetTcpBinding(SecurityMode.None); binding.Name = "TcpEndpoint"; binding.OpenTimeout = TimeSpan.FromMinutes(1); binding.CloseTimeout = TimeSpan.FromMinutes(1); binding.ReceiveTimeout = TimeSpan.FromMinutes(10); binding.SendTimeout = TimeSpan.FromMinutes(10); binding.MaxBufferSize = 2147483647; binding.MaxReceivedMessageSize = 2147483647; binding.TransferMode = TransferMode.Buffered; binding.ReaderQuotas.MaxDepth = 2147483647; binding.ReaderQuotas.MaxStringContentLength = 2147483647; binding.ReaderQuotas.MaxArrayLength = 2147483647; binding.ReaderQuotas.MaxBytesPerRead = 2147483647; binding.ReaderQuotas.MaxNameTableCharCount = 2147483647; binding.Security.Mode = SecurityMode.None; binding.Security.Message.ClientCredentialType = MessageCredentialType.None; binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate; EndpointAddress endpoint = new EndpointAddress(ConfigurationManager.AppSettings["SesameServiceUrl"]); // initialize communication system ClientProxyBase.ConfigureClientProxyForCallback(new ConfigurationForCallback(binding, endpoint)); ClientProxyBase.Faulted += ClientProxyBase_Faulted; try { ClientProxyBase.Open(); } catch (Exception ex) { LOGGER.Error(string.Format("Failed to open connection. Reason: {0}", ex.Message)); mFaultHandlerEvent.Set(); } mFaultHandlerThread = new Thread(new ThreadStart(FaultHandlerThreadMain)); mFaultHandlerThread.Name = "FaultHandlerThread"; mFaultHandlerThread.Start(); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ClientProxyBase.SourceId = ClientIdGenerator.GenerateId(ClientTypeEnum.External); ClientProxyBase.ConfigureClientProxyForCallback(new ConfigurationForCallback("TcpEndpointForCallbackMode")); ClientProxyBase.Faulted += ClientProxyBase_Faulted; try { ClientProxyBase.Open(); } catch (Exception ex) { LOGGER.Error(string.Format("Failed to open connection. Reason: {0}", ex.Message)); mFaultHandlerEvent.Set(); } mFaultHandlerThread = new Thread(new ThreadStart(FaultHandlerThreadMain)); mFaultHandlerThread.Name = "FaultHandlerThread"; mFaultHandlerThread.Start(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, Microsoft.Extensions.Hosting.IHostApplicationLifetime applicationLifetime, IWebHostEnvironment env, ILoggerFactory loggerFactory, IConfiguration config) { // initialize logger loggerFactory.AddLog4Net(); Forge.Logging.LogManager.LOGGER = Forge.Logging.Log4net.Log4NetManager.Instance; Forge.Logging.LogUtils.LogAll(); LOGGER = LogManager.GetLogger(typeof(Startup)); // bind configuration to POCO SesameConfiguration.Instance = config.GetSection("SesameConfiguration").Get <SesameConfiguration>(); // create wcf binding and endpoint address ClientProxyBase.SourceId = ClientIdGenerator.GenerateId(ClientTypeEnum.External); NetTcpBinding binding = new NetTcpBinding(SecurityMode.None); binding.Name = "TcpEndpoint"; binding.OpenTimeout = TimeSpan.FromMinutes(1); binding.CloseTimeout = TimeSpan.FromMinutes(1); binding.ReceiveTimeout = TimeSpan.FromMinutes(10); binding.SendTimeout = TimeSpan.FromMinutes(10); binding.MaxBufferSize = 2147483647; binding.MaxReceivedMessageSize = 2147483647; binding.TransferMode = TransferMode.Buffered; binding.ReaderQuotas.MaxDepth = 2147483647; binding.ReaderQuotas.MaxStringContentLength = 2147483647; binding.ReaderQuotas.MaxArrayLength = 2147483647; binding.ReaderQuotas.MaxBytesPerRead = 2147483647; binding.ReaderQuotas.MaxNameTableCharCount = 2147483647; binding.Security.Mode = SecurityMode.None; binding.Security.Message.ClientCredentialType = MessageCredentialType.None; binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate; EndpointAddress endpoint = new EndpointAddress(SesameConfiguration.Instance.SesameServiceUrl); // initialize communication system ClientProxyBase.ConfigureClientProxyForCallback(new ConfigurationForCallback(binding, endpoint)); ClientProxyBase.Faulted += ClientProxyBase_Faulted; try { ClientProxyBase.Open(); } catch (Exception ex) { LOGGER.Error(string.Format("Failed to open connection. Reason: {0}", ex.Message)); mFaultHandlerEvent.Set(); } mFaultHandlerThread = new Thread(new ThreadStart(FaultHandlerThreadMain)); mFaultHandlerThread.Name = "FaultHandlerThread"; mFaultHandlerThread.Start(); // register shutdown applicationLifetime.ApplicationStopping.Register(OnShutdown); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); }); }