Проблема с размещением службы WCF в режиме отладки VB6 - не удается открыть IChannelListener - PullRequest
0 голосов
/ 09 августа 2011

Итак, у меня есть службы WCF, которые размещаются в приложении VB6 через COM. У меня проблема, когда вы отлаживаете приложение VB6, приложение запускается под процессом VB6.exe, а не отдельным процессом, таким как Visual Studio. Если я завершаю работу приложения, нажимая «Стоп» в отладчике, или возникает исключение, то при следующем запуске приложения оно пытается запустить хост wcf снова, и я получаю эту ошибку

ChannelDispatcher в 'http://localhost:8080/basic' с контрактом (-ами)' "IEvalService" "не может открыть свой IChannelListener.

Я знаю, это потому, что в таких ситуациях не вызывается ServiceHost.Abort или ServiceHost.Close. Я называю это, когда я обычно закрываю приложение, и оно работает в следующий раз. Единственный способ исправить это - перезапустить VB.

Есть ли способ проверить работоспособность хоста службы, прервать его и запустить снова?

1 Ответ

0 голосов
/ 09 августа 2011

Что касается сбоя приложения из-за исключительной ситуации: вы можете рассмотреть возможность включения метода main в try-catch и закрыть службу, если возникла исключительная ситуация.

Что касается ошибки ChannelDispatcherОдин из способов справиться с этим - поместить код в try-catch и catch специально для этого исключения;в блоке catch запустите службу под другим портом.

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