У меня есть 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));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть label, который используется как drop zoneНа него можно перетаскивать файлы только с расширением xml
Есть приложение WinForms, на нем одна формаЯ пытаюсь изменить курсор на курсор ожидания во время выполнения метода:
Нужно подгрузить контент из другого файла в div с классомcontent