【问题标题】:How to configure a Windows Azure WCF Service Web Role to work with netTcpBinding?如何配置 Windows Azure WCF 服务 Web 角色以使用 netTcpBinding?
【发布时间】:2012-03-16 19:54:21
【问题描述】:

我有一个托管在 Windows Azure 上的 WCF 服务,我最近将它的合同更改为双工合同(以支持客户端上的进度条)。我首先使用了 wsDualHttpBinding,它在我的本地机器上运行良好,但正如预期的那样,一旦我部署它就无法运行。

我现在正在尝试将服务配置为使用 netTcpBinding,但我收到错误消息“指定的协议无效。当前不支持名为 'Endpoint1' 的绑定的协议 'tcp'。”。

ServiceDefinition.csdef:

<Endpoints>
  <InputEndpoint name="AlertsEndpoint" protocol="tcp" port="3030" />
</Endpoints>

Web.config:

 <services>      
      <service name="AlertsService.AlertsService" behaviorConfiguration="AlertsServiceBehavior">
        <endpoint address="" binding="netTcpBinding" bindingConfiguration="NetTcp" contract="AlertsService.IAlertsService" />
        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="MexTcp" contract="IMetadataExchange" />
      </service>
    </services>  

<bindings>
      <netTcpBinding>
        <binding name="NetTcp" />
      </netTcpBinding>
      <mexTcpBinding>
        <binding name="MexTcp"/>
      </mexTcpBinding>
</bindings>      

【问题讨论】:

    标签: c# .net windows wcf azure


    【解决方案1】:

    Web Roles 托管 WCF 服务不支持 TCP 协议。 您需要在Worker Role 中托管您的 WCF 服务。

    网络角色:

    Windows Azure 中的 Web 角色支持 HTTP 和 HTTPS 协议...

    工人角色:

    ...并允许进程使用各种外部通信 使用 WCF 服务的基于 TCP 的应用程序协议 netTcpBindings 绑定

    【讨论】:

    • 不完全正确 - Web 角色 支持 tcp。 IIS 托管的 WCF 服务不支持。
    • 太好了,我已经澄清了我的答案,将其限制为 WCF 服务,顺便说一句,这个问题无论如何都是关于...
    • 我之所以这么说,是因为在过去,Web 角色仅限仅限于 http 和 https,但现在不再如此。我已经看到这成为一个混淆点,所以我只是想澄清一下。
    • 这是一个更新和澄清 MSDN 文档以避免混淆的绝佳机会 ;)
    • 嗨...如果您准备在启动时自己编写脚本,您可以为 WCF 服务启用 net.tcp。通过相关链接查看我的答案。
    【解决方案2】:

    您可以通过运行启动脚本以启用 net.tcp毕竟它在一天结束时只是 IIS ,虽然我承认它比它应该的更痛苦!)。 Full details can be seen at this article

    【讨论】:

    【解决方案3】:

    让我澄清一下,因为@magnus johansson 给出的答案并不完全正确。 Windows Azure 中的 Web 角色肯定支持 tcp。但是:在 IIS 中托管 WCF 服务仅限于 HTTP。如果您选择在 IIS 之外实例化您自己的 ServiceHost,那么您对 ​​tcp 没有任何问题。

    这是一个MSDN article,更详细地描述了 IIS 中的 WCF 托管。

    【讨论】:

    • 确实,问题是关于 WCF 服务,而不是一般的 Web 角色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多