netTcpBinding と BasicHttpBinding の主な違いを教えてください。
私の現在のプロジェクトでは、BasicHttpBinding を netTcpBinding に変換し、パフォーマンスの問題が発生します。BizTalk の値が 1:00:00 に設定されていても、タイムアウトが発生します。理由がわかりませんでした。
netTcpBinding と BasicHttpBinding の主な違いを教えてください。
私の現在のプロジェクトでは、BasicHttpBinding を netTcpBinding に変換し、パフォーマンスの問題が発生します。BizTalk の値が 1:00:00 に設定されていても、タイムアウトが発生します。理由がわかりませんでした。
netTcp および basicHttp バインディングは、HTTP ではなく TCP という、まったく異なるトランスポート メカニズムを使用します。理論的には、TCP のバイナリ エンコーディングは、HTTP のテキスト エンコーディングよりも高速です。
hereで説明されているように、netTcpBinding は、追加のセキュリティ オーバーヘッドや競合のために、それほど高速ではない場合があります。
既定では、NetTcpBinding によって特定のレベルのセキュリティが有効になり、WCF ランタイムのメッセージ処理パイプラインにオーバーヘッドが追加されます。さらに、NetTcpBinding はポート共有機能も有効にします。これは、WCF ホストがポートに排他的にアクセスできず、代わりに他のアプリケーションと共有する可能性があることを意味します。NetTcpBinding エンドポイントに依存する Windows アプリケーションが多数あることを考えると、Windows Server 2008 または Windows 7 環境でサービスをホストしている場合、これは非常に興味深いものになる可能性があります。最後に、ListenBacklog および MaxConnections 設定のデフォルト値は 10 に設定されていますが、これは多数のクライアントにとって最適とは言えません。
また、通信のどの部分がタイムアウトしているかについての情報がなければ、正確な原因を特定することは困難です。トランザクションの両側で、開く、閉じる、送信または受信のタイムアウト設定が異なることに注意してください。