4

現在、コールバックコントラクト(デュプレックス)を使用するWCFサービスがあり、それを使用するアプリケーションをコンピューターで使用するとすべて正常に動作しますが、別のコンピューターから試してみると接続されません。

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

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)]

[アップデート]

オリオンエドワーズの投稿に関して:

  • ファイアウォールなし
  • ポイント1を参照
  • はい、できます。ルーターにポートを転送しているからです。
  • サーバーをホストするためにIISを使用しています。

wsHttpBinding問題は、この問題は、 (正常に機能していた)からwsDualHttpBinding(コールバックが必要だったため)に切り替えたときに発生し始めたということです。


[アップデート]

wsDualHttpBinding私は今からに切り替えました、NetTcpBindingそして何らかの理由で、すべてがうまく働いています。

この記事を使用してIISでホスティングを設定しましたが、ありがたいことに、コールバックを使用してすべてが期待どおりに機能しています。

4

3 に答える 3

2

wsDualHttpBinding私は今からに切り替えました、NetTcpBindingそして何らかの理由で、すべてがうまく働いています。

この記事を使用してIISでホスティングを設定しましたが、ありがたいことに、コールバックを使用してすべてが期待どおりに機能しています。

于 2009-05-09T08:38:56.343 に答える
1

サーバーとクライアントの構成設定を投稿すると便利です。

これは、 MSDNからのwsDualHttpBindingの動作の概要です(私の強調):

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

このバインディングは、1つ以上のSOAP仲介者を介して確実に通信するために使用できます。

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

于 2009-05-13T00:20:22.003 に答える
0

チェックすること:

  • Windowsファイアウォール
  • ウイルス対策製品のファイアウォール
  • リモートマシンからポートにtelnetで接続できますか?
  • 「サーバー」はASP.NET開発サーバーで実行されていますか?これは、ローカルホストからの要求のみを受け入れます。サーバーを使用してサーバーをセルフホストするServiceHostか、IISでサーバーをホストする必要があります。
于 2009-05-07T21:21:47.873 に答える