系统相关
首页 > 系统相关> > c# – Windows服务托管TCP WCF服务

c# – Windows服务托管TCP WCF服务

作者:互联网

我试图在Windows 2008 R2服务器上托管WCF服务作为Windows服务.我按照msdn(found here)提供的指示进行操作.只要所有内容都是Visual Studio中同一解决方案的一部分,一切都可以正常工作.但是,我尝试在不同的解决方案(在同一台机器上)创建客户端,但无法找到该服务.我收到如下所示的“添加服务引用错误”.

我的目标是能够远程访问wcf服务,但我似乎甚至无法在本地访问它,除非客户端是在同一客户端内创建的.是否有任何指南,教程或有用的提示,任何人都可以让我让这个工作?

更新:
似乎即使Windows服务正在运行,WCF服务似乎也没有监听任何端口.这表明它没有运行.这也解释了为什么每个人都认为我没有运行该服务.我曾经假设,因为Windows服务正在运行并且同一个解决方案客户端工作,所以WCF服务也正常运行.事实证明,每当我运行相同的解决方案客户端时,Visual Studio就会启动WCF服务.

那么,为什么Windows服务不启动WCF服务呢?有任何想法吗?

解决方法:

事实证明,MSDN提供的教程存在问题(在上面的问题中提供).他们将Windows服务和WCF服务Service1命名为两者的默认名称.

Windows服务假设启动WCF服务,但它实际上是尝试再次启动,因为两个服务具有相同的名称.

myServiceHost = new ServiceHost(typeof(Service1));

要解决此问题,您可以在Windows服务中引用时重命名其中一个服务或完全限定WCF服务.

myServiceHost = new ServiceHost(typeof(WcfServiceLibrary1.Service1));

有趣的是,提供的代码看起来仍然有效,因为Visual Studio足够聪明,可以注意到WCF服务没有运行,它在幕后启动实例.

修复这是一个简单的错误,但由于Visual Studio隐藏了我的问题,我认为如果没有Espen Burud的帮助我就不会找到它.

标签:c,wcf,windows-services,wcf-client
来源: https://codeday.me/bug/20190715/1469991.html