自托管WCF服务

时间:2014-01-24 22:06:26

标签: c# wcf self-hosting

我正在使用WCF服务,我将其托管在控制台应用程序中。我将所有配置都放在XML文件中。该服务运行良好,我可以很好地从客户端连接它,但令我困扰的是,当我启动它时,WcfSvcHost应用程序启动(在我的图标托盘中)并说“您的服务已经托管.... ”。但是,当我点击它时,它会显示我的服务,并且状态显示为Stopped(错误表示没有定义端点)。

我有两个项目,一个是服务项目,另一个是托管项目。该错误指向具有该服务的项目,该项目没有定义配置,因为(我假设)在那里不需要它。我在App.config中包含承载服务的项目中的所有配置。

我如何摆脱这条消息?它甚至是一个问题还是正常的?

P.S。我只启动托管服务的项目,而不是具有服务代码的项目。

2 个答案:

答案 0 :(得分:3)

点击项目后,我找到了解决方案。如果右键单击服务库项目,在WCF选项下,有一个选项“在解决方案中调试另一个项目时启动WCF服务主机”,只需取消选中该项目即可停止。

另外,请检查Scott Chamberlain的答案,这可能是某些情况下的原因。

答案 1 :(得分:1)

如果WcfSvcHost正在启动,则您的托管应用无法启动。即使您说您正在启动托管应用程序,请仔细检查您是否将服务库设置为启动项目。

enter image description here

在上图中,启动项目应为HostingApp,您可能将其设置为WcfServiceLibrary


另一种可能性是您的托管应用设置错误,在托管应用的项目设置中,检查输出类型是否为Windows Application

enter image description here

如果您将其设置为Class Library,那么在“命令行参数”中,您/client:"WcfTestClient.exe"也会导致您的问题。如果您将项目作为“Serivice Library”启动,但后来又决定将其转入托管应用程序,则很容易发生这种情况。