1

前のスレッドで、回答者の 1 人が、wsHttpBinding を使用するとセッションが使用されると述べました。クラスター化された IIS 環境で作業しているため、これを無効にする必要がありますか? 私の知る限り、セッションはクラスターでは機能しません。

これを無効にする必要がある場合、どうすればよいですか?

4

1 に答える 1

5

それはおそらく私でした :-) デフォルトでは、サービスと使用されるバインディングによって、セッションが開始されるかどうかが決まります。

何もせずに wsHttpBinding を使用すると、セッションが作成されます。それを避けたい場合は、次のことを行う必要があります。

  • 必要に応じて別のプロトコル/バインディングに切り替える
  • サービス コントラクトを SessionMode 属性で装飾する

サービスがセッションを使用しないようにするには、次のようにします。

[ServiceContract(Namespace="....", SessionMode=SessionMode.NotAllowed)]
interface IYourSession
{
....
}

また、適切なインスタンス コンテキスト モード属性でサービス クラスをデコレートできます。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
class YourService : IYourService
{
  ....
}

これにより、ほとんど安全な側にいる必要があり、セッションはまったく取得されません.

マルク

于 2009-09-09T13:37:36.010 に答える