私は以下の問題があります。基本的に小さなテストでうまく動作するWCFサービスがあります。c#wcf - プロキシクラスopen()を呼び出すと例外が発生します
「通信オブジェクト、System.ServiceModel.Channels.ServiceChannel、できない:私はバッチ/負荷テストを試みる場合しかし、私は、open()メソッドは、プロキシクラスで呼び出されたメッセージで
InvalidOperationException
を得ますOpened状態になっている間に変更されます。
私はGoogleを検索しましたが、この例外メッセージを実際に引用している他の人は見つかりませんでした。
私は、サービスが公開されている方法の1つを介してデータを受け取った場合、基本的に何らかの処理を実行し、データに関連付けられたサービス(別のデータ異なるルーティングになります)。サービスができるだけ迅速に実行されるように、データの受信、処理、ルーティングの各サイクルは、スレッドプール内の別々のスレッドによって処理されます。これは、あるスレッドがproxyClass.Open()
を呼び出している間に別のスレッドが既にそれを使用しているときに発生する問題かもしれませんか?実際にはこれが問題ならば、lock
ブロックはこの問題を解決しますか?
おかげでみんな、 - あまりに長いのためにこのプロジェクトにworkikng、そして最終的にそれの背中を見たいと思っされてアイブ - これは、最後のつまずきであるように思われるので、任意のヘルプは非常に
:-)感謝します================================ ===============================
WCFプロキシクラスのためにusing
構成を使用すべきではないことを強調してくれてありがとう。複数回)あなたがオープン(と呼ばれてきたようですが、間違いなく聞こえる
try
{
client = new proxy.DataConnectorServiceClient();
client.Open();
//do work
client.Close();
}
.................. //catch more specific exceptions
catch(Exception e)
{
client.Abort();
}
スレッド間で同じプロキシオブジェクトを共有していますか? –
はい、私はそうです - ロックブロックについて尋ねられた理由は... –
こんにちは、私は以下のコメントを更新しました。問題 – mamu