2015-04-01 147 views
1

將WCF服務從Windows 2003 Server移動到Windows 2008 Server時出現問題。此服務在同一臺服務器上的網站和Windows服務之間進行通信。該服務在2003 Server上運行以下配置,在Windows 7計算機上運行。在net.tcp:// localhost:10001上沒有可以接受消息的端點

在2008服務器,我收到以下錯誤消息

異常類型:System.ServiceModel.EndpointNotFoundException

消息:有沒有終點,在聽的net.tcp://localhost:10001/DCFDirectCert/SecurityService可以接受消息。這通常是由不正確的地址或SOAP操作引起的。

配置爲Web站點

<system.serviceModel> 
    <diagnostics> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="true" /> 
    </diagnostics> 
    <bindings> 
     <netTcpBinding> 
     <binding name="DirectCertBindingConfig"> 
      <security mode="None" /> 
     </binding> 
     <binding name="DirectCert.Services.DirectCertSecurityService.BindingConfig" closeTimeout="00:01:00" 
       openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" 
       transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" 
       listenBacklog="10" maxBufferPoolSize="524288" maxBufferSize="1000000" maxConnections="10" 
       maxReceivedMessageSize="1000000"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" 
         maxNameTableCharCount="16384" /> 
      <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
      <message clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <client> 
     <endpoint address="net.tcp://localhost:10001/DirectCert/SecurityService" binding="netTcpBinding" 
       bindingConfiguration="DirectCert.Services.DirectCertSecurityService.BindingConfig" 
       contract="IDirectCertSecurityService" name="IDirectCertSecurityService" /> 
    </client> 
    </system.serviceModel> 

配置爲Windows服務

<system.serviceModel> 
    <diagnostics> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="true" /> 
    </diagnostics> 
    <bindings> 
     <netTcpBinding> 
     <binding name="DirectCert.Services.DirectCertSecurityService.BindingConfig"> 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
      <message clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="DirectCert.Services.DirectCertSecurityService.Behavior" 
       name="DirectCertSecurityService"> 
     <endpoint address="" binding="netTcpBinding" 
        bindingConfiguration="DirectCert.Services.DirectCertSecurityService.BindingConfig" 
        contract="IDirectCertSecurityService" /> 
     <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:10001/DirectCert/SecurityService" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <client> 
     <endpoint address="net.msmq://localhost/private/DirectCert" binding="netMsmqBinding" 
       bindingConfiguration="DirectCert.Services.DirectCertMatchService.BindingConfig" 
       contract="IDirectCertMatchService" name="DirectCertMatchServiceClient" /> 
    </client> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="myBehaviorConfiguration"> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     <behavior name="DirectCert.Services.DirectCertSecurityService.Behavior"> 
      <serviceMetadata /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      <dataContractSerializer /> 
      <serviceTimeouts /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

回答

1

我所看到的是,這兩個綁定的安全模式是不一樣的(輸送與無)。

相關問題