Как остановить WCF-сервис?

192
19 декабря 2019, 20:10

У меня есть WCF-сервис и консольное приложение (хост). Код хоста:

private static void StartHost()
{
    Uri baseAddress = new Uri("http://localhost:8873/MyWCF/");
    using (ServiceHost selfHost = new ServiceHost(typeof(MyWCF), baseAddress))
    {
        selfHost.AddServiceEndpoint(typeof(WcfService.IMyWCF), new WSHttpBinding(), "MyWCF");
        ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
        smb.HttpGetEnabled = true;
        selfHost.Description.Behaviors.Add(smb);
        selfHost.Open();
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.ReadLine();
        selfHost.Abort();
        selfHost.Close();
    }
}

Это работает, я могу отправлять сообщения моему сервисe через клиентское приложение.

Но если я нажимаю Enter и закрываю хост, то WCF-служба продолжает работать! Запросы от клиента проходят, ответы возвращаются.. В диспетчере задач я вижу запущенный процесс IIS Express, в трее в списке запущенных сайтов с IIS я так же вижу свой сервис.. Почему так происходит, ведь я использую конструкцию using и даже вызываю методы Abort() и Close().. Как я могу полностью остановить сервис? Проблема в том, что сервис использует некоторые dll из решения, служба их не "отпускает". Спасибо за любую помощь, ссылки

Клиентский код:

Uri baseAddress = new Uri("http://localhost:8873/MyWCF/");
BasicHttpBinding binding = new BasicHttpBinding();
var wcf = ChannelFactory<IMyWCF>.CreateChannel(binding, new EndpointAddress(baseAddress));
READ ALSO
Как изменить курсор в области Drop zone

Как изменить курсор в области Drop zone

Есть label, который используется как drop zoneНа него можно перетаскивать файлы только с расширением xml

161
Как изменить курсор на курсор ожидания?

Как изменить курсор на курсор ожидания?

Есть приложение WinForms, на нем одна формаЯ пытаюсь изменить курсор на курсор ожидания во время выполнения метода:

150
Datatables передать выбранные поля в PHP

Datatables передать выбранные поля в PHP

У меня есть таблица, использующая jquery Datatables:

145
Подгрузка контента через ajax в вордпресс

Подгрузка контента через ajax в вордпресс

Нужно подгрузить контент из другого файла в div с классомcontent

142