private void OnHostUnload(object sender, HostUnloadEventArgs e) { HostInfo host = null; foreach (HostInfo info in hosts) { if (info.Host == sender) { host = info; break; } } if (host == null) { IApplicationHost appHost = sender as IApplicationHost; Logger.Write(LogLevel.Error, "Can't unload host {0}:{1}:{2}:{3}", appHost.VHost, appHost.VPort, appHost.VPath, appHost.Path); return; } Logger.Write(LogLevel.Debug, "Domain={0} Unload host in domain {1}", AppDomain.CurrentDomain.FriendlyName, ((IApplicationHost)sender).Domain.FriendlyName); lock (hosts) { hosts.Remove(host); } if (!e.IsShutdown) { // CombinedFastCgiListenerTransport.RegisterTransport (host.ListenerTransport, typeof(CombinedAppHostTransport)); CreateAppHost(host.AppHostType, host.AppHostConfig, host.AppConfig, host.ListenerTransport, host.AppHostTransportType, host.AppHostTransportConfig); } }
private void OnHostUnload(object sender, HostUnloadEventArgs e) { try {} finally { HostInfo host = null; lock (hosts) { foreach (HostInfo info in hosts) { if (info.Host == sender) { host = info; break; } } } if (host == null) { IApplicationHost appHost = sender as IApplicationHost; Logger.Write(LogLevel.Error, "Can't unload host {0}:{1}:{2}:{3}", appHost.VHost, appHost.VPort, appHost.VPath, appHost.Path); } else { Logger.Write(LogLevel.Debug, "Domain={0} Unload host in domain {1} id={2}", AppDomain.CurrentDomain.FriendlyName, ((IApplicationHost)sender).Domain.FriendlyName, ((IApplicationHost)sender).Domain.Id); lock (hosts) { hosts.Remove(host); } if (!e.IsShutdown) { CreateAppHost(host.AppHostType, host.AppHostConfig, host.AppConfig, host.ListenerTransport, host.AppHostTransportType, host.AppHostTransportConfig); } else { Logger.Write(LogLevel.Debug, "Domain is shutdown. Host is not recreated"); } } } }