无法在IIS上托管基于tcp的wcf服务,无法从net.tcp获取元数据:// localhost / TestApp2 / MyService错误弹出

时间:2012-01-25 15:08:54

标签: wcf iis tcp nettcpbinding

我有一个简单的测试目的WCF服务。我试图在IIS 7.5(Windows 7)下托管它,但到目前为止没有运气。我收到错误

  

无法从net.tcp:// localhost / TestApp2 / MyService

获取元数据

我在默认网站下有一个网站TestApp2,我在默认网站和TestApp2上启用了tcp。这是我的web.config文件,虽然我意识到这个错误只是说我没有端点进行元数据交换,我看不出是什么问题,因为我包含端点进行元数据交换。

<system.serviceModel>
<services>
  <service behaviorConfiguration="ServiceBehavior" name="MyService">

    <endpoint address="net.tcp://localhost/TestApp2/MyService"
              binding="netTcpBinding"
              bindingConfiguration="PortSharingBinding"
              contract="II7WcfService.IService1" />

    <endpoint address="MEX"
              binding="mexTcpBinding"
              contract="IMetadataExchange" />

    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost/TestApp2/MyService" />
      </baseAddresses>
    </host>

  </service>
</services>
<bindings>
  <netTcpBinding>
    <binding name="PortSharingBinding" portSharingEnabled="true">
      <security mode="None"/>
    </binding>
  </netTcpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceMetadata httpGetEnabled="False" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>

感谢。

1 个答案:

答案 0 :(得分:0)

我猜你的服务实际上并不是MyService,而是名称空间。这意味着您的声明端点没有被拾取,而是使用默认端点(不包括IMetadataExchange)。

将命名空间的名称添加到配置中的属性中,它应该可以正常工作。