【问题标题】:Is it possible to have 2 sites that uses the same named WCF service, but on different DLLs?是否可以有 2 个站点使用相同命名的 WCF 服务,但在不同的 DLL 上?
【发布时间】:2014-03-25 12:23:44
【问题描述】:

我有一个使用旧 WCF 服务环境的站点和一个使用较新环境的新站点。

当我说环境时,我指的是 WCF 服务 dll,它们公开相同的合同和方法,但它们以不同的方式实现。

看来我不能为这种设置使用相同的服务器 (IIS),因为尝试使用较新的站点会产生错误,并且我注意到流量被重定向到旧的 WCF 环境。 (我检查了我的网站配置和绑定,一切都 100% 好)。

我的问题是是否可以使用相同的命名联系人设置 2 个站点? 在我看来,它没有,即使它们是由服务地址区分的。

服务器(旧):

<service name="Services.API.AnonymousUserService" behaviorConfiguration="ProductionBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://old.mysite.com:808/AnonymousUserService.svc" />
      </baseAddresses>
    </host>
    <endpoint name="tcp"
              address=""
              binding="netTcpBinding" bindingConfiguration="ProductionBinding"
              contract="Services.API.IAnonymousUserService" />
    <endpoint name="mex"
              address="mex"
              binding="mexTcpBinding"
              contract="IMetadataExchange" />

  </service>

客户(旧)

<client>
    <endpoint name="tcp"
        address="net.tcp://old.mysite.com/AnonymousUserService.svc"
        binding="netTcpBinding" bindingConfiguration="ProductionBinding" 
        contract="ServiceAnonymousUser.IAnonymousUserService">
        <identity>
            <servicePrincipalName value="host/production01.local" />
        </identity>
    </endpoint> 
</client>

服务器(新):

同Server(旧),只是地址是​​“net.tcp://new.mysite.com:808/AnonymousUserService.svc”

客户(新):

同Client(旧),只是地址是​​“net.tcp://new.mysite.com/AnonymousUserService.svc”

【问题讨论】:

  • 如果在同一台机器上。您必须更改端口号。他们都使用同一个端口。
  • Tan,我已经尝试了您的建议,但我的新站点仍在使用旧服务,无视端口差异。我的新服务已关闭(站点和应用程序池),并且我的新站点具有引用新站点的客户端配置。我对这件事完全一无所知。
  • 你能在你使用服务代理的地方放一些代码吗?也许您指向的是设置文件中的旧服务。
  • 我正在使用 StructureMap 来处理实例化。 x.For().Use(new AnonymousUserServiceClient());如果我从站点的 web.config 中删除 标记,我会收到 StructureMap 202 错误,这意味着它无法实例化它(这很好)。
  • 在客户端进行服务调用之前放置一个断点,并检查端点地址。如果是已部署的环境,请使用 wireshark

标签: wcf


【解决方案1】:

好的,终于解决了(8 小时后)。

This男人的问题有答案!

如果链接被破坏,那么问题在于该站点的 net.tcp 端口绑定: 不要对站点使用“808:*”,而是对每个站点使用“808:www.site-a.com”和“808:www.site-b.com”。

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 2015-02-09
    • 2018-02-05
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多