我在安装的自托管WCF服务中看到了这种奇怪的行为。它安装得很好,但是当我从浏览器转到它的URL时没有响应。当我在浏览器中刷新我从VS运行时成功测试的相同URL时,我从Firefox中收到“无法连接”错误。
从Visual Studio运行它时测试正常。我有错误处理和登录安装,当我检查事件查看器时,我看到“服务已成功启动”消息,但正好在下面是此消息:
“Web服务主机出现故障.System.EventArgs”
这是错误处理&我在主机安装程序中记录的代码:
void SvcHost_Faulted(object sender, EventArgs e)
{
this.EventLog.WriteEntry("Web Service Host has faulted. " + e.ToString(), EventLogEntryType.Error, 0, 0);
}
我测试了禁用防火墙 - Windows防火墙和Comodo Internet Suite,但问题仍然存在。
我终于能够通过更改解决方案中的端口号然后重建它来使其工作。我所做的端口号更改位于项目属性“Web”选项卡以及web.config和主机app.config文件中。我重新构建了整个解决方案,而没有在Visual Studio中运行它,卸载了旧的安装,然后安装了最新的版本。然后我确保Visual Studio创建的“烤面包机”任务已停止 - 从系统托盘中我找到了图标,右键单击它然后选择“停止”。
安装完成后,我进入了“服务”并单击“开始”。我查看了事件查看器并确认启动时没有更多错误消息,只有“服务已成功启动”消息。
现在,当我在浏览器中刷新相同的URL时,它连接正常。我通过停止已安装的服务,在调试模式下在Visual Studio中运行解决方案,停止调试模式并停止“多士炉”任务,然后重新启动已安装的服务 - 现在已安装的服务不起作用,进一步测试了此行为。
是什么给出的? Visual Studio是否仅声明或注册端口号?