IISでServiceHostFactoryを使用してWCFサービスを実行しています。WSHttpBindingで問題なく実行されていますが、速度とすべてが同じネットワーク上にあるため(ファイアウォールなし)、速度を上げたいと思います。代わりにNetTcpBindingを使用しています。
私がそうしようとすると、このエラーが発生します:
Net.tcp://zzz.xxx.yyy/MyService.svcに接続できませんでした。接続の試行は、00:00:01.0464395の期間継続しました。 TCPエラーコード10061:ターゲットマシンがx.x.x.x: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エンドポイントが発生している可能性があります。
Vistaを使用している場合は、WASおよびNet.Tcpリスナーアダプタサービスが実行されていることを確認してください。
これに遭遇した人のために、次のようなnet.tcp WCF問題のトラブルシューティングのガイド:
c:\windows\system32\inetsrv
、 入る appcmd.exe set app "NameOfWebsite/" /enabledProtocols:http,net.tcp
できました。
Net.Tcpリスナーアダプターサービスを開始すると、サービスは正常に機能します。
ポート808を許可しないサービスホストのファイアウォールルールと同じくらい簡単なものですか?
Window Server 2008 R2でもこの問題が発生していました
Net.Tcpリスナーアダプターの依存関係であるため、Net.Tcpポート共有サービスも開始されていることを確認してください。
IISが両方のプロトコルが同じポート番号を指しているかどうかを確認します。そうである場合、私はちょうど見つけました、それは機能しません。