2011-01-19 11 views
3

私はいくつかのサーバーと通信するためにWCFを使用しています。いつWCF NetTcpBindingはクライアントに対して完全な信頼を必要としますか?

私のローカルサーバーでは、netTcpBindingは正常に動作しますが問題はありません。

しかし、app.configで次のnetTcpBindingを使用してリモートサーバー(Azure)に接続しようとすると、完全信頼なくnetTcpBindingを作成できないため、アプリケーションが初期化されるとクラッシュします。

このapp.configファイルに結合、

<bindings> 
    <netTcpBinding> 
    <binding name="NetTcpBinding_IService" 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="Transport"> 
     <transport clientCredentialType="None" protectionLevel="EncryptAndSign" /> 
     <message clientCredentialType="Windows" /> 
     </security> 
    </binding> 
    </netTcpBinding> 
</bindings> 
それは、このエラーになります

An error occurred creating the configuration section handler for "system.serviceModel/bindings": That assembly does not allow partially trusted callers. (K:\Somepath\Testing.exe.Config line 6)

奇妙なこと:app.configファイルで私はせずに(他のnetTcpBindingsに接続しているクライアントエンドポイントを得ました拘束力のあるセクションでそれらを明示的に宣言する)。

これらの一般的なnetTcpBindingは部分的な信頼性で動作しますが、私が上に示したものはなぜそうではありませんか?

このエラーメッセージで混乱していますが、問題は完全信頼ではありませんか?

更新:<バインディングを削除すると、問題はなくなります。だから私は部分的な信頼でnetTcpBindingを使用することが許可されているが、私はパラメータを変更することはできません?これは私のコミュニケーションで何らかの形の暗号化をしたいので残念です。

答えて

2

NetTcpBindingは、部分信頼環境では一般的にサポートされていません。

TransportSecurityやReliableMessagingのような機能は(サンプル環境では)明示的にnot supported on partial trustです(大きな時間です)。

+0

面白いことです:デフォルトのnettcpbinding *は、部分的な信頼で私のために働きます。それはちょうど私がの部分を回避する設定ファイルの部分です。バインディングについて何かを試してみると、nettcpbindingは部分的な信頼で失敗します。 – Sam

関連する問題