WCF REST json サービス (WebHttpBinding) を実行しています。純粋な WCF セッションはこの種のバインドでは機能しないため、asp.net セッションを使用しています。したがって、次のように設定します。
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
私たちのweb.configで、そして:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
サービスの実装に加えて。次のようないくつかのサービス方法があります。
public void OpenSession(string userName)
public void GetSomething(int somethingId)
public void CloseSession()
次に、各メソッドで HttpContext の sessionId をテストします。
HttpContext.Current.Session.SessionID
問題は、常に変化していることです。Web ブラウザーでOpenSession?userName='toto'を呼び出し、その直後にGetSomething?somethingId=1234を呼び出すと、セッション ID が変更されます。
Cookie が wcf によって適切に処理されていないようです。フィドラーで OpenSession メソッドを呼び出すと、http ヘッダーで、サービスから返される「Set-Cookie」がありません。