zoukankan      html  css  js  c++  java
  • 使用NetTcpBinding,WCF服务未能被激活

    我的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?

  • 相关阅读:
    微信mac版的bug 直接显示了消息原始数据
    提一下InfoQ
    成长
    SaaS产品成功学
    .io域名在申请SSL证书时被坑
    一件小事
    Git做代码增量发布的重要用法
    今天
    为什么都不写博
    惑不惑
  • 原文地址:https://www.cnblogs.com/felixnet/p/7782882.html
Copyright © 2011-2022 走看看