21

IIS で ServiceHostFactory を使用して WCF サービスを実行しています。WSHttpBinding で正常に動作していますが、速度とすべてが同じネットワーク上にある (ファイアウォールなし) ため、代わりに NetTcpBinding を使用して少し速度を上げたいと考えています。

それをしようとすると、次のエラーが発生します。

net.tcp://zzz.xxx.yyy/MyService.svc に接続できませんでした。接続の試行は、00:00:01.0464395 の期間継続しました。TCP エラー コード 10061: ターゲット マシンがアクティブに拒否したため、接続できませんでした xxxx:808。

私はそれが私をSecurityMode.None台無しにしないことを確認するためだけに使用しています。また、2つの異なる試行でこれらのいずれかを試しました:

binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
binding.Security.Message.ClientCredentialType = TcpClientCredentialType.Windows;,

また、サービス呼び出しの 1 つからかなりの量のデータを取得していることも指摘しておく必要があります。したがって、これらも (http と tcp の両方の試行に - maxMessageSize を 1000000 に設定して) 置きます。

binding.MaxReceivedMessageSize = maxMessageSize;
binding.ReaderQuotas.MaxArrayLength = maxMessageSize;

それを機能させるのはかなり簡単なはずですが、何が欠けていますか?

更新: TCP ポート 808 を Web サイト ID に追加して、再試行しました。今、私はこのエラーを受け取ります:

.Net Framing をサポートしていないサービスへのチャネルを作成しようとしました。HTTP エンドポイントに遭遇している可能性があります。

4

7 に答える 7

23

Vista を使用している場合は、WAS および Net.Tcp リスナー アダプタ サービスが実行されていることを確認します。

于 2009-04-23T09:25:18.740 に答える
15

これに遭遇した人のために、net.tcpWCFの問題をトラブルシューティングするための私のガイドは次のようになります。

  1. net.tcpがWebサイトで有効なプロトコルであることを確認します(IISで、サイトを右クリックし、[詳細設定]に移動して、[有効なプロトコル]に「net.tcp」が含まれていることを確認します。
  2. これが妄想的なものかどうかはわかりません。また、コマンドラインと手順1を使用して、サイトのnet.tcpを有効にする必要があります。コマンドプロンプトを開き、から次のようにc:\windows\system32\inetsrv入力します。appcmd.exe set app "NameOfWebsite/" /enabledProtocols:http,net.tcp
  3. IISのWebサイトのバインディングにnet.tcpのエントリがあり、それが正しいポート番号にバインドされていることを確認します(私にとっては、ポート9000へのバインディングとして9000:*を使用します)。また、IISの他のWebサイトがそのポートに同じnet.tcpバインディングを使用していないことを確認してください
  4. 「Net.TCPリスナーアダプタ」サービスが実行されていることを確認します。

終わり。

于 2012-03-16T10:44:45.060 に答える
14

IIS 7.0 での非 HTTP バインディングの有効化に関するこの投稿を確認してください。デフォルトでは、IIS 7.0 で net.tcp を明示的に有効にする必要があります。

お役に立てれば。

アップデート:

あなたのコメントを見ました - 残念ながら、net.tcp は IIS 6.0 ではサポートされていません。さまざまなホスト (セルフホスティング、WAS、IIS など) でサポートされている WCF バインディングの詳細については、このリンクを確認してください。IIS 6.0 では HTTP バインドのみが機能するようです。

于 2008-10-14T13:01:07.203 に答える
7

Net.Tcp Listener Adapter Service を開始すると、サービスは正常に機能します。

于 2010-10-15T19:54:35.407 に答える
1

Window Server 2008 R2でもこの問題が発生していました

Net.Tcp ポート共有サービスも開始されていることを確認してください。これは、Net.Tcp リスナー アダプターの依存関係であるためです。

于 2015-03-30T12:00:28.967 に答える
1

ポート 808 を許可しないサービス ホストのファイアウォール ルールと同じくらい単純なものでしょうか?

于 2008-10-14T12:49:27.757 に答える
1

IIS が同じポート番号を指す両方のプロトコルを持っているかどうかを確認してください。その場合は機能しません。

于 2010-12-13T14:30:55.970 に答える