WCF - There was no endpoint listening at net.tcp:/

2019-04-07 11:49发布

问题:

WCF - There was no endpoint listening at net.tcp://myserver:9000/SearchQueryService/Querier.svc that could accept the message.

I have the net.tcp protocol enabled on the IIS application

Windows firewall is off

The net.tcp binding is set to port 9000 for the entire IIS application.

My web.config is very standard:

<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>

And this very setup works on one server but not the other... What could be the problem?

Both servers, the working and non-working one are running IIS7. The only difference is the working box is Vista64 Sp2 and non working one is W2k864.

回答1:

I think that you are missing the net.tcp in the "Enable Protocols" list in the advanced settings of the site.



回答2:

Do you have .net 3.5 installed on the w2k864 machine? After you install it, did you run aspnet_iisreg?

Check the asp.net settings in IIS and ensure it is set to use 2.0

Can you provide any more information?

Also try to use your ip rather than a host name. e.g. 192.168.1.100 instead of myserver



回答3:

When you browse to the service (http://myserver/SearchQueryService/Querier.svc), do you get any error messages?

I also noticed that your client is calling the net.tcp endpoint on port 9000. Does this configuration matches the IIS net.tcp configuration? In a default configuration, a call to your service should be pointed to net.tcp://myserver/SearchQueryService/Querier.svc