2009-07-21 7 views
1

WCFサービスホストとして動作する1台のコンピューターがあります。クライアントマシンには複数のクライアントプロセスが実行され、それぞれ別のポート(5601,5602など)でWCFサービスもホストされます。クライアントプロセスはホストをハンドシェークします。ハンドシェイクが受信されると、ホストはいくつかのデータを返信します。クライアントプロセスは、ホストマシン上の別のメソッドの指示に従って、次々と生成されます。しかし、私は複数のインスタンスを起動した後、次の例外が発生し続ける:複数のコンシューマーによって消費されるWCFサービスのホスティング、FaultExceptionの取得

サーバーは内部エラーのため要求を処理できませんでした。エラーの詳細については、例外情報をクライアントに送り返すために、サーバー上のIncludeExceptionDetailInFaults(ServiceBehaviorAttributeまたは構成動作のいずれか)をオンにするか、Microsoft .NET Framework 3.0 SDKドキュメントに従ってトレースをオンにしてくださいサーバートレースログを検査します。

ただし、スポーン間に遅延を追加すると、問題はないようです。これを引き起こす原因は何か、そして私はそれをどのように修正すべきですか?

は、リモートシステム上のプロセスを生成します。このプロセスは、メインシステム上のコントローラサービスとすぐにハンドシェイクを試みます。

 target.InitiateTestProcess(a); 
     //System.Threading.Thread.Sleep(1000); 
     target.InitiateTestProcess(b); 

と握手

public void Handshake(Uri connectBack) 
    { 
     IWorkerContract client = ChannelFactory<IWorkerContract>.CreateChannel(
      new BasicHttpBinding(), 
      new EndpointAddress(new Uri(connectBack, "Worker"))); 

     client.PassUUT(clients[connectBack]); 
    } 

のための追加情報が必要とされていると私は自分の能力を最大限にあなたの質問に対処しようとするでしょうたら、コメントしてください。

答えて

0

私はこの問題を解決し、IncludeExceptionDetailInFaultsコンシューマを有効にして例外の詳細を返すようにしました。作業者はファイルを作成したり読み込んだりしていました(テストでは常に同じファイルでした)、2つのプロセスが同じファイルを読み込もうとすると衝突することがありました。

関連する問題