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

4 回答 4

5

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

于 2009-09-28T17:04:01.080 回答
0

您在 w2k864 机器上安装了 .net 3.5 吗?安装后,你运行aspnet_iisreg了吗?

检查 IIS 中的 asp.net 设置并确保将其设置为使用 2.0

你能提供更多信息吗?

也尝试使用您的 ip 而不是主机名。例如 192.168.1.100 而不是 myserver

于 2009-09-25T19:44:28.200 回答
0

当您浏览到服务 ( http://myserver/SearchQueryService/Querier.svc ) 时,是否收到任何错误消息?

我还注意到您的客户端正在调用端口 9000 上的 net.tcp 端点。此配置是否与 IIS net.tcp 配置匹配?在默认配置中,对服务的调用应指向 net.tcp://myserver/SearchQueryService/Querier.svc

于 2009-09-28T19:37:47.420 回答
0

可能有另一个应用程序配置为在同一端口上侦听,您也可以在此处看到这一点 - https://stackoverflow.com/a/7254861/4446128,如果是这种情况,可能两个应用程序都在同一个端口不工作。我希望当这种情况发生时会有更好的错误消息,因为我花了很长时间才弄清楚(我不得不处理许多通过 net.tcp 交谈的应用程序),我希望这些信息对仍然处理 WCF 的任何人都有帮助。

于 2020-11-14T04:34:32.200 回答