protected void UnhookServiceHostEventHandlers(SupremacyServiceHost serviceHost) { if (serviceHost == null) { throw new ArgumentNullException("serviceHost"); } CheckDisposed(); serviceHost.ServiceOpened -= OnServiceOpened; serviceHost.ServiceFaulted -= OnServiceFaulted; serviceHost.ServiceClosed -= OnServiceClosed; }
protected void CreateServiceHost() { CheckDisposed(); lock (_serviceLock) { if (_isServiceLoaded) { return; } try { var serviceHost = new SupremacyServiceHost(); HookServiceHostEventHandlers(serviceHost); Interlocked.CompareExchange(ref _serviceHost, serviceHost, null); _isServiceLoaded = true; } catch (Exception e) { GameLog.Server.General.ErrorFormat("Exception occurred while creating WCF service host: {0}", e.Message); throw new SupremacyException("Failed to create WCF service host.", e); } } }