WCF端口8080中的WSHttpBinding被另一个应用程序使用

时间:2019-05-17 09:50:47

标签: wcf

在我们的项目中,我们有时使用WCF服务,有时正在使用异常端口。我已经搜索到所有发现的错误将来自双工连接,并且必须使用{{3}中指定的clientBaseAddress属性}

所以谁能想到如何为WSHttpBinding解决这个问题?

我的app.config文件代码如下所示。

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
  <service behaviorConfiguration="MyStandardServiceBehave" name="Services.TestService">
    <endpoint address="http://localhost:8080/TestService"
      binding="wsHttpBinding" bindingConfiguration="standardServiceConfiguration"
      contract="ServiceContracts.ICommonService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080/TestService" />
      </baseAddresses>
    </host>
  </service>
</services>
<bindings>
  <wsHttpBinding>
    <binding name="standardServiceConfiguration"
           maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" >
      <readerQuotas maxDepth="2147483647" maxBytesPerRead="2147483647"
       maxArrayLength="2147483647" maxStringContentLength="2147483647" />
    </binding>
  </wsHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyStandardServiceBehave">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="True"/>
    </behavior>
  </serviceBehaviors>
</behaviors>    

1 个答案:

答案 0 :(得分:1)

您没有使用任何双工连接(wsDualHttpBinding)。您正在使用一个简单的wsHttpBinding。因此,这与之无关。

这与以下事实有关:端口已被另一个应用程序使用(错误消息已告诉您)。

一个端口只能由一个进程使用。因此,您必须停止现有进程或将8080以外的端口用于WCF服务。

请参阅here,以了解哪个应用程序正在使用您的端口。