Мой вопрос: я не могу перейти к базовому адресу после установки службы, потому что служба не будет работать (немедленно останавливается). Есть ли что-нибудь, что мне нужно сделать на сервере или моей машине, чтобы сделать baseAddress действительным?Служба Windows (хостинг службы WCF) сразу останавливается при запуске
Справочная информация. Я пытаюсь узнать, как использовать службы WCF, размещенные в службах Windows. Я прочитал несколько руководств о том, как это сделать, и это кажется очень прямым. Я посмотрел на это MSDN article и построил его шаг за шагом. Я могу установить службу на своем компьютере и на сервере, но когда я запускаю службу, она немедленно останавливается. Затем я нашел this tutorial, что по сути то же самое, но содержит некоторые клиенты, которые потребляют службу WCF. Я загрузил исходный код, скомпилировал, установил, но когда я запустил службу, он немедленно остановился.
Поиск SO, я нашел possible solution, который сказал, чтобы определить baseAddress при создании экземпляра ServiceHost, но это тоже не помогло.
Мой ServiceHost определяется как:
serviceHost = new ServiceHost(typeof(CalculatorService),
new Uri("http://localhost:8000/ServiceModelSamples/service"));
имени моей службы, базовый адрес и конечная точка:
<service name="Microsoft.ServiceModel.Samples.CalculatorService" behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
Я проверял пространства имен идентичны. Просто расстраивает то, что в учебниках предполагается, что служба Windows начнется, пока все указанные шаги будут соблюдены. Я что-то упускаю, и это, вероятно, прямо передо мной. Пожалуйста помоги!
Я не знал, что это происходит. Спасибо за указатель! – norepro
Я не знаю, как это произошло, но как только я завернул попытку/поймал его (и зарегистрировал исключение), служба осталась на начальном этапе, и никакая ошибка не была зарегистрирована. Теперь я могу перейти к baseAddress. Странный. Благодаря! – norepro
Спасибо, это сводило меня с ума. Обернул его в попытку поймать, и все работает. –