WCF - 没有端点在 net.tcp://..../Querier.svc 上监听,无法接受消息。

7

WCF - 没有终结点侦听 net.tcp://myserver:9000/SearchQueryService/Querier.svc,无法接受消息。

我已经在 IIS 应用程序上启用了 net.tcp 协议。

Windows 防火墙已关闭。

整个 IIS 应用程序的 net.tcp 绑定设置为端口 9000。

我的 web.config 非常标准:

<system.serviceModel>
    <diagnostics>
      <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="false"
        logMessagesAtTransportLevel="true" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="SearchQueryServiceBehavior" 
       name="Search.Querier.WCF.Querier">
        <endpoint address="mex" binding="mexHttpBinding" name="mexHttpEndpoint"
          contract="IMetadataExchange" />
        <endpoint binding="netTcpBinding" bindingConfiguration="" 
           name="netTcpEndpoint"
          contract="Search.Querier.WCF.IQuerier" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SearchQueryServiceBehavior">

          <serviceMetadata httpGetEnabled="true"/>

          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

这个设置在一个服务器上可以工作,但在另一个服务器上却不行...可能是什么问题呢?

两台服务器,工作和不工作的都运行着IIS7。唯一的区别是工作的机器是Vista64 Sp2,而不工作的机器是W2k864。

4个回答

5

我认为您在站点的高级设置中的“启用协议”列表中缺少net.tcp。


0

您的w2k864机器上是否安装了.net 3.5?安装后,是否运行了aspnet_iisreg?

检查IIS中的asp.net设置,并确保其设置为使用2.0版本。

您能提供更多信息吗?

另外,请尝试使用IP地址而不是主机名。例如,使用192.168.1.100而不是myserver。


0
当您浏览到服务(http://myserver/SearchQueryService/Querier.svc)时,是否收到任何错误消息?
我还注意到您的客户端正在调用端口9000上的net.tcp端点。这个配置是否与IIS net.tcp配置匹配?在默认配置中,对服务的调用应指向net.tcp://myserver/SearchQueryService/Querier.svc

0

有可能有另一个应用程序配置为在相同的端口上进行监听,你也可以在这里看到提到这一点 - https://dev59.com/m2w05IYBdhLWcg3wahJM#7254861 ,如果是这种情况,相同端口上的两个应用程序可能都无法工作。我希望当这种情况发生时会有更好的错误消息,因为我花了很长时间才找到问题所在(我不得不处理许多使用 net.tcp 进行通信的应用程序),我希望这些信息对仍在处理 WCF 的任何人都有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接