WCF HTTPSを呼び出すすべてのメソッドで呼び出されるコンストラクター

asp.net basichttpbinding c# https wcf
WCF HTTPSを呼び出すすべてのメソッドで呼び出されるコンストラクター

私には奇妙な問題があります(または私にとっては奇妙なだけかもしれません)

wsHttpBindingでホストされたWCF WebSrviceがありました。 (HTTP)

すべてが良かったです。

PHPからアクセスしたいため、basicHttpBindingに切り替えました。 また、サービスHTTPSを作成したので、HTTPS経由のbasicHttpBindingになりました。

サービスは正常に機能しており(ほぼ期待どおり)、メソッドも期待どおりに機能しています。

ただし、最後の構成(wsHttpBinding、HTTP)で、クライアントがサービスコンストラクターを呼び出した最初のメソッドを呼び出したときに気づき、それから他のすべてのメソッドで再び呼び出されることはありませんでした。 (私はコンストラクタでいくつかのコードを実行していたので、クライアントがサービスの使用を開始したときに一度だけ実行したかったので良かったです)

ただし、新しい構成(basicHttpBinding、HTTPS)では、実行されるすべてのメソッドに対してコンストラクターが呼び出されます。

これは正常ですか、それとも何か間違っていますか? 通常の場合、まず最初に、セッション(クライアント)ごとに1回実行するコードに対して何をすればよいですか。 また、時間があれば、HTTPでの動作が異なり、HTTPSでの動作も異なるのはなぜですか? (または、バインディングの違いが原因ですか?)

ありがとう。

  2  2


ベストアンサー

WCFサービスのデフォルトの InstanceContextMode`は PerSession`です。これは、使用していたバインディングによってHTTP経由でサポートされます。 ただし、HTTPSはこのデフォルトのセッション動作の発生を防ぐため、「PerCall」動作が発生します(毎回新しいサービスオブジェクトが構築されます)。http://social.msdn.microsoft.com/Forums/en-HKを参照してください/ wcf / thread / 505afc20-7042-462b-95d7-f1c444c1f390 [this]は、これを修正する方法について投稿しています。

4


タイトルとURLをコピーしました