在我们的项目中,我们有时使用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>
答案 0 :(得分:1)
您没有使用任何双工连接(wsDualHttpBinding)。您正在使用一个简单的wsHttpBinding。因此,这与之无关。
这与以下事实有关:端口已被另一个应用程序使用(错误消息已告诉您)。
一个端口只能由一个进程使用。因此,您必须停止现有进程或将8080以外的端口用于WCF服务。
请参阅here,以了解哪个应用程序正在使用您的端口。