2009-05-04 31 views
3

私は現在、コールバック契約(デュプレックス)を使用してWCFサービスを利用しています。別のコンピュータから試してみると接続しません。WCF:「System.ServiceModel.Channels.ClientReliableDuplexSessionChannelを開くことができませんでした」

wsHttpBindingを使用した場合、すべて正常に機能するため、wsDualHttpBinding(コールバック用)に切り替えると、これらの問題が発生し始めました。

Webサービスが他のコンピュータからの要求を受け入れないのはなぜですか?それは変更する必要があるいくつかのホスティング設定ですか?


ログに関しては、私はこれらを取得しています:

alt text http://img17.imageshack.us/img17/4628/wcfissue.jpg

オープン操作が 0時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を使用してサーバーをホストしています。

事がある私はwsDualHttpBindingに(罰金働いていた)wsHttpBindingから切り替えたときに(私がコールバックを必要とするので)、この問題は


起こって開始[更新]

I wsDualHttpBindingからNetTcpBindingに切り替わりました。何らかの理由ですべて正常に動作しています。

私はthis articleを使用してIISでのホスティングをセットアップしてくれました。ありがとうございました。すべてが期待どおりにコールバックで動作しています。チェックする

答えて

2

wsDualHttpBindingからNetTcpBindingに変更しました。何らかの理由ですべて正常に動作しています。

私はthis articleを使用してIISでのホスティングをセットアップしてくれました。ありがとうございました。すべてが期待どおりにコールバックで動作しています。

0

もの:

  • Windowsファイアウォール
  • お使いのウイルス対策製品のファイアウォール
  • リモートマシンからのポートにtelnetすることはできますか?
  • 「サーバー」はASP.NET開発サーバーで実行されていますか?これはローカルホストからの要求のみを受け付けます。ServiceHostを使用してサーバーを自己ホストするか、IISの下でホストする必要があります。
1

サーバーとクライアントの構成設定を送信した場合に役立ちます。

は、ここで(私を強調)wsDualHttpBindingはMSDNからどのように動作するかの概要です:

WSDualHttpBindingは、WSHttpBindingなどのWebサービスプロトコル ため 同じサポートを提供しますが、 二重契約で使用するため。 WSDualHttpBinding はSOAPセキュリティのみをサポートし、 には信頼性の高いメッセージングが必要です。 この バインディングでは、クライアントに サービスのコールバックを提供する パブリックURIが必要です。これは、clientBaseAddress 属性によって提供される です。デュアルバインディングは、クライアントの IPアドレスを サービスに公開します。クライアントは、 セキュリティを使用して、信頼するサービスに接続するのは にする必要があります。

このバインディングを使用して、1つまたは より多くのSOAP仲介を確実に通信できます。デフォルトでは

、この結合は、信頼性のための WS-ReliableMessagingの、メッセージセキュリティと 認証、HTTPメッセージ 配信のためのための のWS-Security、およびテキスト/ XMLメッセージ エンコーディングで ランタイムスタックを生成します。

関連する問題