2014-01-24 216 views
1

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

我有两个项目,一个是服务,另一个是托管它的项目。错误指向具有服务的项目,它没有配置,因为(我认为)它不是必需的。在App.config中,我拥有承载该服务的项目中的所有配置。

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

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

+0

我很困惑。 IIS不会托管你的服务?另一个项目如何托管WCF服务? – crush

+1

@crush只需选择一个端口并说“开始监听HTTP请求”,就可以从代码托管WCF服务。 –

+0

@TimothyShields Web.config是否适用于这种情况? – crush

回答

1

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

enter image description here

在上图中,启动项目应该是HostingApp你可能有它设置为WcfServiceLibrary


另外一个可能是您的托管应用程序设置错误,在项目设置托管应用程序,检查输出类型是Windows Application

enter image description here

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

+0

我检查了所有这些,我很确定我有所有的设置正确。我100%肯定我的托管应用程序正在启动(这是WPF,并打开一个窗口,您可以开始/停止服务,但当我仅使用控制台应用程序时,我也遇到了这个问题)。我正在使用VS 2013 Ultimate。我有一些项目依赖项,托管项目依赖于依赖于另一个项目的服务库。我有一个启动项目集(托管应用程序),这是一个Windows应用程序,服务库是一个类库。 – Squeazer

+0

我懂了!如果右键单击服务库项目,在WCF选项下,有一个选项“在调试解决方案中的另一个项目时启动WCF服务主机”,只需取消选中即可。 – Squeazer

3

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

此外,检查斯科特张伯伦的答案,这可能是在某些情况下的原因。