0

wsDualHttpBindingを使用するwcfの単純なプログラムがあります。server.exeを別のコンピューター(LANネットワーク上)に置き、クライアント経由でメソッドを呼び出しました。クライアントでコールバックが正常に呼び出されました。次に、server.exeを(インターネット上の)VPSサーバーに配置し、client.exeを実行すると、クライアントはTimeoutExceptionをスローします。サーバーのリスニングには9090ポートを使用しています。また、両側のファイアウォールをオフにします。

どうしたの?助けてください、それは私を夢中にさせます。

編集: サーバーとクライアントの両方に有効なIPアドレスが必要ですか?

4

3 に答える 3

0

クライアントの構成を確認してください。以下の設定を増やしてみてください。

<binding name="WSDualHttpBindingEndpoint" 
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"

サービスオペレーションが呼び出され、タイムリーに戻っていることを確認します。メソッドが開始および終了したときに、サービスにログへの書き込みを依頼します。

また、ポート9090がブロックされていないことを確認します。

于 2013-02-28T13:00:15.747 に答える
0

server.exeでメタデータエンドポイントを使用してhttpメタデータを公開し、ブラウザのクライアントマシンでWebサービスページを開いてみてください。

また、インターネット上でもwsDualHttpBindingの代わりにnettcpbindingを使用することをお勧めします。これは、より安定した永続的なチャネルであり、AFAIK wsDualHttpBindingは通常の二重会話に2つのポートを必要とするためです(クライアントバインディングのClientBaseAddressを参照)。Tcpには1つ必要です

于 2013-02-28T22:29:45.283 に答える
0

問題は解決しました!

二重接続では、クライアントとサーバーの両方に有効なIPアドレスが必要です。接続方法を変更しました。netTcpを使用しました。

とにかくtnxみんな。

于 2013-04-19T18:29:24.527 に答える