質問

WCFサーバーとクライアントの接続に問題があります。

通常、サービスとクライアントを使用する場合、つまり、クライアントが通常の操作(myclient.Close())を介して接続および切断すると、すべてが正常に機能します。ただし、サーバーを実行していて、Visual Studioの「停止」を使用する場合は、クライアントアプリケーションを終了するボタン、サーバーとクライアントの通信が混乱しているように見え、サーバーは接続を正しくクリーンアップせず、クライアントからの新しい接続は非常に不安定で、特定の関数呼び出しのみが1つの関数が例外をスローするまで機能しますの:

System.ServiceModel.CommunicationException: http:// localhost:へのHTTP応答の受信中にエラーが発生しました。 8080 / Design_Time_Addresses / Service_Beta1 / Service 。これは、サービスエンドポイントバインディングがHTTPプロトコルを使用していないことが原因である可能性があります。これは、サーバーによって中断されたHTTP要求コンテキストが原因である可能性もあります(おそらくサービスのシャットダウンが原因です)。詳細については、サーバーログを参照してください。 ---> System.Net.WebException:基礎となる接続が閉じられました:受信で予期しないエラーが発生しました。

他にも多くの例外があります。それらを読むことは避けましょう。

サーバーとクライアントをシャットダウンして両方を再起動した場合、徹底的な「停止」を行うまで、すべての呼び出しは正常に機能します。ビジュアルスタジオで。不適切に閉じられた接続をサーバーに強制的にクリーンアップさせるにはどうすればよいですか?本番環境では「停止」を知っています。ボタンはなくなっており、理論上は問題はないはずですが、クライアントのクラッシュや接続の切断によるサーバー接続の問題は望みません。必然的にそれらのケースがあるからです。 20以上のクライアントが接続を試行して例外を取得する前に、今すぐこれを修正するのが最善です。

ありがとう

役に立ちましたか?

解決

返信の投稿に長い時間がかかって申し訳ありません。私の問題は、データテーブルをクライアントに返していましたが、作成時にテーブルに名前を付けていなかったことです。以下を参照してください。

Dim dt As New DataTable() 'Passing just a blank un-named table to client gave errors.
Dim dt As New DataTable("Table") 'Naming the table like so passes just fine.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top