0

我有一个客户端应用程序,它与服务器交互,这是一个 WCF 服务。我有一个问题:我使用这样的命令通过命令行启动我的服务:

start WcfSvcHost.exe /service:SodisWebServer.dll /config:SodisWebServer.dll.config

在托盘中,我有一个 WCFSvcHost.exe 的图标。当我按下它上的退出按钮时,我希望我的服务器关闭,但是当我尝试重新启动它时,我捕捉到一个,AddressAlreadyInUseException因为服务 ip+port 上有一个侦听器,并且在我按下 WCFSvcHost.exe 上的退出后,进程仍然跑步。

我将非常感谢任何帮助。

4

1 回答 1

0

如果进程没有关闭,它可能正在等待通道关闭,因为抛出异常等。

另一个典型原因是,如果您通过“服务库”项目类型创建 WCF 服务,Visual Studio IDE 将使用内部 WCFSVCHost 工具来测试服务库。如果 VS 正在运行,那么即使您关闭了手动启动的 WCFSVCHost 的另一个实例(但在第一次尝试运行主机后您会收到它),它也可能正在运行。

以防万一我建议您取消选中项目属性中标记为“在同一解决方案中调试另一个项目时启动 WCF 服务主机”的框,或者尝试构建一个控制台应用程序来托管 WCF 服务以进行测试(自托管 WCF 服务)。

于 2013-01-31T13:39:46.833 回答