Как мне остановить веб-сервис WCF? - PullRequest
0 голосов
/ 26 марта 2010

Я остановил сайт в IIS, внес изменения в Web.config, но, черт побери, продолжает записывать события моего журнала в мою базу данных! Единственное решение, которое я нашел, - полностью перезапустить IIS. Это не очень хорошее решение, потому что тогда все мои сайты должны останавливаться / перезапускаться.

UPDATE

Я немного покопался и нашел сервисный завод, который использует сервис. Вот и весь класс.

/// <summary>
/// Derive from this class to create a duplex Service Factory to use in an .svc file
/// </summary>
/// <typeparam name="T">The Duplex Service type (typically derived from DuplexService)</typeparam>
public abstract class DuplexServiceFactory<T> : ServiceHostFactoryBase where T : IUniversalDuplexContract, new()
{
    T serviceInstance = new T();

    /// <summary>
    /// This method is called by WCF when it needs to construct the service.
    /// Typically this should not be overridden further.
    /// </summary>
    public override ServiceHostBase CreateServiceHost( string constructorString, Uri[] baseAddresses )
    {
        ServiceHost service = new ServiceHost( serviceInstance, baseAddresses[ 0 ] );
        CustomBinding binding = new CustomBinding(
                                new PollingDuplexBindingElement(),
                                new BinaryMessageEncodingBindingElement(),
                                new HttpTransportBindingElement()
                                );

        service.Description.Behaviors.Add( new ServiceMetadataBehavior() );
        service.AddServiceEndpoint( typeof( IUniversalDuplexContract ), binding, "" );
        service.AddServiceEndpoint( typeof( IMetadataExchange ), MetadataExchangeBindings.CreateMexHttpBinding(), "mex" );
        return service;
    }
}

Это просто возвращает новый экземпляр службы, но я не знаю, кто звонит. Мой файл SVC указывает на этот класс как на фабрику. Тропа заканчивается здесь, но я не понимаю, где весь сам процесс выполняется.

1 Ответ

0 голосов
/ 26 марта 2010

В каком процессе работает ваш веб-сервис WCF? Вы уверены, что это IIS? Может ли это быть что-то еще? WCF может работать в разных процессах. Вам нужно выяснить, в каком процессе он находится (это может быть не обязательно IIS), и убить этот процесс, чтобы остановить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...