現在、コールバックコントラクト(デュプレックス)を使用する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でホスティングを設定しましたが、ありがたいことに、コールバックを使用してすべてが期待どおりに機能しています。