码迷,mamicode.com
首页 > Web开发 > 详细

使用NetTcpBinding,WCF服务未能被激活

时间:2017-11-04 13:32:05      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:col   方向   cti   activate   ace   star   es2017   cto   xxxx   

我的WCF采用的是NetTcpBinding,使用时就会报错,换成BasicHttpBinding,就一切正常

The requested service, ‘net.tcp://wcf.xxxxx.com:21336/GameService.svc‘ could not be activated. See the server‘s diagnostic trace logs for more information.

这时我用浏览器访问一下SVC,客户端再请求它又好了,但是隔几分钟不访问,错误又出现

=====================================================================

这个问题困扰我好多天,网上也是找遍了没有解决办法(现在想其实思考方向错了,以为配置有问题,其实是一个WCF服务依赖注入初始化的问题)

关键时刻还是得靠 StackOverflow,随便一搜就找到解决办法了

Autofac WcfIntegration - WCF client service can not be activated when communicating over net.tcp

原来,我用到了Autofac.Integration.Wcf 来做WCF服务的依赖注入

<%@ ServiceHost Language="C#" Debug="true" 
    Service="Wettery.WcfContract.Services.IGameService, Wettery.WcfContract.Services"
    Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf" %>

依赖关系的建立等初始化操作是在 Global.asax 的 Application_Start

技术分享

但是 Global 仅适用 Http 绑定,TCP 绑定可采用另一种方法:

在 App_Code 下随便建一个类,添加一个静态方法 public static void AppInitialize() ,服务启动时,这个方法将被自动执行

技术分享

注意:包含AppInitialize 静态方法的类只能放在App_Code下,并且是此方法必须唯一

 

更详细参考:

When AppInitialize method get invoked in ASP.NET?

使用NetTcpBinding,WCF服务未能被激活

标签:col   方向   cti   activate   ace   star   es2017   cto   xxxx   

原文地址:http://www.cnblogs.com/felixnet/p/7782882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!