WCF:“ System.ServiceModel.Channels.ClientReliableDuplexSessionChannel”を開けませんでした
-
03-07-2019 - |
質問
現在、コールバックコントラクト(二重)を使用したWCFサービスがあり、コンピューターでそれを使用するアプリケーションを使用するとすべて正常に動作しますが、別のコンピューターから試しても接続されません。
wsHttpBinding
を使用するとすべてが正常に機能したため、この wsDualHttpBinding
(コールバック用)に切り替えると、これらの問題が発生し始めました。
Webサービスが他のコンピューターからの要求を受け入れないのはなぜですか?変更が必要なホスティング設定はありますか?
ログに関しては、これらを取得しています:
代替テキストhttp://img17.imageshack.us/img17/4628/wcfissue .jpg
オープン操作は完了しませんでした 割り当てられたタイムアウト内 00:01:00。これに割り当てられた時間 操作はの一部だったかもしれません より長いタイムアウト
System.ServiceModel.Channels.ClientReliableDuplexSessionChannelを開けませんでした
障害 System.ServiceModel.Channels.ClientReliableDuplexSessionChannel
障害 System.ServiceModel.Channels.ServiceChannel
開けなかった System.ServiceModel.Channels.ServiceChannel
ポートはルーター(TCPとUDPの両方)で開いているため、問題はありません。
サービス属性に関しては、これが私が使用しているものです:
インターフェース:
[ServiceContract(Name = "MusicRepo_DBAccess_Service",
CallbackContract = typeof(IOnlineUsersCallback),
SessionMode=SessionMode.Required)]
サービス:
[ServiceBehavior(
ConcurrencyMode=ConcurrencyMode.Reentrant,
InstanceContextMode=InstanceContextMode.Single)]
[更新]
Orion Edwards 'に関して投稿:
- ファイアウォールなし
- ポイント1を参照
- はい、できます。ルーターでポートを転送しているからです
- IISを使用してサーバーをホストしています。
問題は、 wsHttpBinding
(正常に機能していた)から wsDualHttpBinding
(コールバックが必要なため)に切り替えたときにこの問題が発生し始めたことです。
[更新]
wsDualHttpBinding
から NetTcpBinding
に切り替えました。何らかの理由で、すべてが正常に機能しています。
この記事を使用して、IISでのホスティングを設定しました。ありがたいことに、コールバックを使用して、すべてが期待どおりに機能しています。
解決
wsDualHttpBinding
から NetTcpBinding
に切り替えました。何らかの理由で、すべてが正常に機能しています。
この記事を使用して、IISでのホスティングを設定しました。ありがたいことに、コールバックを使用して、すべてが期待どおりに機能しています。
他のヒント
サーバーとクライアントの構成設定を投稿すると役立ちます。
MSDN からwsDualHttpBindingがどのように機能するかの概要を次に示します(私を強調する):
WSDualHttpBindingは、 Webサービスプロトコルの同じサポート WSHttpBindingとして、ただしで使用するため 二重契約。 WSDualHttpBinding SOAPセキュリティのみをサポートし、 信頼できるメッセージングが必要です。 これ バインディングには、クライアントが コールバックを提供するパブリックURI サービスのエンドポイント。これは clientBaseAddressによって提供されます 属性。デュアルバインディングは、 クライアントのIPアドレス サービス。クライアントは使用する必要があります それだけを保証するセキュリティ 信頼するサービスに接続します。
このバインディングを使用して、 1つまたは より多くのSOAP仲介者。
デフォルトでは、このバインディングは ランタイムスタック 信頼性のためのWS-ReliableMessaging メッセージセキュリティのためのWS-Securityおよび 認証、メッセージのHTTP 配信、およびテキスト/ XMLメッセージ エンコード。
確認事項:
- Windowsファイアウォール
- ウイルス対策製品のファイアウォール
- リモートマシンからポートにtelnetできますか?
- あなたの「サーバー」はASP.NET開発サーバーで実行していますか? localhostからのリクエストのみを受け付けます-
ServiceHost
を使用してサーバーをセルフホストするか、IISでホストする必要があります。