0

私はポータブルクラスライブラリを使用して、すべてのUIテクノロジがサービスとの通信に使用するサービスクラスを構築しています。

これらのライブラリは、Silverlight、Asp.Net、およびその他の.NetUIテクノロジをサポートします。

Silverlightがサポートされているため、すべての呼び出しは非同期である必要があります。

Silverlightを使用すると、client.Method()がサービスを呼び出した直後にCloseAsync()を呼び出すことができます。

ただし、これはAsp.Netクライアントでは機能しないことがわかりました。

複数の非同期呼び出しが行われている場合、タイミングの問題が発生する可能性があるため、完成したコードでCloseAync()を使用したくありません。

CloseAsync()が呼び出されて完了していないことを確認するために、すべての非同期メソッドにwhileループを配置するなど、多くのロジックを考え出す必要はありません。

現在、完了したセクションでAbortを使用してテストしていますが、すべて正常に機能しているようです。

他の誰かがUseingAbortに遭遇する可能性のある問題を知っているかどうか知りたいですか?

ありがとう。

.Net4.5を使用しています。

4

1 に答える 1

0

使用しているバインディングによって異なります。セッションを使用するバインディングを使用している場合、Close[Async] を呼び出すと、最初にそのセッションを閉じようとします (たとえば、信頼できるメッセージングを使用する WSHttpBinding)。次に、接続を閉じます。そうしないと、時間までサーバー側で有効なままになります。アウト。セッションを使用しないバインディング (つまり、BasicHttpBinding) を使用している場合、それらはほぼ同等です。

于 2013-01-30T21:27:20.943 に答える