0
我試圖訪問公司網絡上的WCF服務。我正在使用由svcutil生成的代理和配置文件。代碼如下所示:只是另一個「現有連接被遠程主機強行關閉」問題
using (Client client = new Client())
{
client.Open();
client.DoStuff();
}
客戶端是在生成的代理代碼的客戶端類,這意味着它是從System.ServiceModel.ClientBase派生並實現了合同接口。
而且配置文件看起來是這樣的:
<configuration>
<system.serviceModel>
<client>
<endpoint address="net.tcp://Address"
binding="netTcpBinding"
bindingConfiguration="Config"
contract="Namespace.Contract"
name="name">
<identity>
<servicePrincipalName value="Host" />
</identity>
</endpoint>
</client>
<bindings>
<netTcpBinding>
<binding name="Config"
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="65536"
maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession ordered="true"
inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
我得到的異常每次代碼達到client.Open時間「現有的連接被強行關閉遠程主機」()。真正麻煩的是,當我從另一臺電腦上試用它時,並沒有例外。而最重要的是,使用的配置文件有交通運輸的安全性,其變更爲無,並在它的工作原理仍然是計算機有而第一個機器上
<security mode="Transport">
<transport clientCredentialType="Windows"
protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
舊的配置文件和服務器這是
<security mode="None">
<transport clientCredentialType="None" />
</security>
這是什麼原因造成的?關於這個例外,我已經閱讀了許多其他問題,但沒有一個看起來像我的問題。
已解決!我已將安全選項設置在錯誤的地方。 該服務由ServiceHost自行託管,且Security屬性未設置,因此它默認爲None以外的其他值。
謝謝,我託管它與ServiceHost,而不是IIS,但我的問題是類似的。 – ggPeti