0

serviceThrottlingのサービス属性SessionMode.NotAllowedおよびmaxConcurrentSessionsは、wshttpbindingと同時に使用できます。

これは、おそらくセッションの2つの異なる概念を参照していることを意味しますか?

例:SessionMode.NotAllowed=ステートレスサービス。
maxConcurrentSessions=max。同時(異なる?)セキュリティネゴシエーション。

編集:この回答から別の質問
への回答 から、「WCFはapp.config [maxConcurrentSessions]が属性[SessionMode.NotAllowed]と整合性があることを確認し、整合性がない場合はサービスの開始を拒否する」ことを理解しました。 SessionMode.NotAllowedが宣言され、これによりセッションの使用が無効になった場合、maxConcurrentSessionsとの構成が矛盾しているため、WCFはサービスの開始を拒否すべきではありませんか?

4

1 に答える 1

1

SessionMode.NoAllowedは、コントラクトをステートレスな方法で実装する必要があることを示しています

NetTcpの場合、これにより、サービスが本質的にセッションフルであるために開始できなくなります。WSHttpBindingの場合、セッションが抑制されます。

SessionMode.NotAllowedを使用する場合、スロットルするセッションがないため、maxConcurrentSessionsは効果がありません。

WSHttpBindingは、SecureConversationを使用して、セッションの概念が利用可能な場合はそれをサポートします。利用できない場合は、利用できる場合は信頼できるメッセージングを使用します。どちらも利用できない場合は、セッションをサポートできません

しばらく前にこのことについてブログ記事を書きました

編集に応じて更新

安全な会話とセッションは同じものではありません。安全な会話は、セッションの有無に関係なく使用できます。WSHttpBindingがセッションをサポートする1​​つの方法は、安全な会話のネゴシエーションを使用してセッションを定義することです。ただし、SessionMode.NotAllowedと言うと、WCFは単にsessionIDを持たず、セッションをサポートしません。これは、安全な会話を使用しないという意味ではありません。

maxConcurrentSessionsは、同時セッションの最大数を制限します。セッションをオフにすると、セッションの数は0になるため、常に最大数より少なくなります

于 2011-07-21T07:48:31.433 に答える