2012-04-26 5 views
0

これを使用すると:InstanceContextMode.PerSession、すべてのクライアントに対してサービスを1回初期化します。私は正しい?WCF InstanceContextMode.PerSession

[OperationBehavior(TransactionScopeRequired = true)]を持つメソッドを呼び出すと、JobImplementコンストラクタが呼び出されます。どうして?

マイサービス:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
    public class JobImplement : IJob 
    { 
     public static int Sum = 0; 
     public JobImplement() 
     { 
      Sum++; 
     } 
     [OperationBehavior(TransactionScopeRequired = true)] 
     public void UselessMethod1() 
     { 
     } 
     [OperationBehavior(TransactionScopeRequired = true)] 
     public void AddEmployee(string Name, string Age) 
     { 
     } 
     public int GetSum() 
     { 
      return Sum; 
     } 
    } 

EDIT 1:

WSHttpBindingが結合し、ここに私の唯一のクライアントコードで使用してイム。

私のクライアント:

static void Main(string[] args) 
     { 
      ServiceReference1.IJob Service1 = new ServiceReference1.JobClient(); 
      Service1.UselessMethod1();//sum become [1] 
      Service1.AddEmployee("","");//sum become [2] 
      Console.WriteLine(Service1.GetSum());//show [2]. 
      Console.WriteLine(Service1.GetSum());//show [2]. 
      Console.WriteLine(Service1.GetSum());//show [2]. 
     } 
+0

人々があなたの質問に適切な答えを与えるときには、(あなたの横にある中空の緑色のチェックマークをクリックすると)最良の答えを受け入れることが期待されます。私の提案がうまくいったように見えるので、私はそれを答えとして書き直してください。それを受け入れることができます:) – Alan

答えて

2

ここに記載されているサービスでは、属性のデフォルト値(true)が使用されます。

これは、TransactionScopeRequiredを介してトランザクションスコープを強制するメソッドにより、サービスインスタンスが解放され、次にメソッドが呼び出されたときに、新しいインスタンスが所望のInstanceContextModeにもかかわらず作成されることを意味します。

関連する属性をfalseに変更すると問題が解決するはずです。

+0

ありがとうございました! –

0

は、サービスの新しいインスタンスのように見えるたびにクライアントがあなたのサービスを呼び出す作成しました。これは、クライアントが終了したセッション(およびコンストラクタ)が原因である可能性があります。たとえば、クライアントがプロキシをクローズした場合、次回クライアントがサービスを呼び出すと、新しいセッションが作成されます。あなたがサービスに接続するたびにプロキシを閉じていないことを確認しましたか?

+0

Im sory私はあなたが何を言っているのか理解しませんでした。 –

+0

混乱して申し訳ありません。私はちょうど私の記述を書き直す。これは今より良いと思っています:) –

+0

まず、あなたの編集に感謝します。第二に、セッションを終了したと言いました。これは、TransactionScopeRequired = trueを含むメソッドを呼び出すと発生します。 Btw、プロキシは何ですか?私のenglushのためのIm soryそして素晴らしい一日を! –

関連する問題