質問

Wcfは初めてで、最初のWcfサービスを作成しようとしました。アンマネージコードを持ち、ファイル操作を行うクラス(新しいアセンブリ)を追加しました。サービスの動作は次のように設定されます

InstanceContextMode = InstanceContextMode.Single

ConcurrencyMode = ConcurrencyMode.Single

サービスへのアクセスがシングルモードの場合、新しいファイル操作クラスが作成されます。ファイル操作クラスが失敗すると(メモリリークまたはクリティカルエラー)、ホストへのすべての新しい接続が以前の接続の影響を受けることに気付きました。

相互に完全に分離され、クライアント接続が閉じられた後に完全に破棄されるWcfインスタンスを作成することは可能ですか?

よろしく、 トーマス

役に立ちましたか?

解決

はい、それが優先モードです-「コールごと」と呼ばれます:

  

InstanceContextMode =   InstanceContextMode.PerCall

     

ConcurrencyMode =   ConcurrencyMode.Single

そのようにして、WCFサービスに着信する各リクエストは、サービスクラスの独自の個別の分離されたインスタンスを取得し、そのインスタンスがリクエストを処理してから破棄されます。

これにより、最大のパフォーマンスが得られ、リクエストが相互に分離されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top