加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:03:26 所属栏目:百科 来源:网络整理
导读:我试图在 Windows 2008 R2服务器上托管WCF服务作为Windows服务.我按照msdn( found here)提供的指示进行操作.只要所有内容都是Visual Studio中同一解决方案的一部分,一切都可以正常工作.但是,我尝试在不同的解决方案(在同一台机器上)创建客户端,但无法找到该
我试图在 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的帮助我就不会找到它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读