2011-09-27 6 views
6

私はWCFサービス(WebGet属性経由)を使用しています。WebHttpBindingからのWCFサービスのアクセスセッション

私は、WCFサービスからセッションにアクセスしようとしているが、HttpContext.Currentがnull

である私はAspNetCompatibilityRequirementsと、編集されたweb.configファイルを追加しましたが、私はまだセッションにアクセスすることはできません。

WebGetとSessionを一緒に使用できますか?

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

答えて

5

はい、可能です。あなたはweb.config編集する場合:

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 

をしてAspNetCompatiblityRequirementsを追加し、HttpContext.Currentが利用可能であるべきです。

もう一度、属性を間違った場所(クラスではなくインターフェイス)に入れたかどうかをもう一度確認してください。

+2

私は属性を持っていますが、セッションはありません。 WebHttpBindingはセッションと互換性がありますか? –

4

セッションによるRESTfulサービスですか?

ここで優れた説明を参照してください:ポールPrescodからCan you help me understand this? "Common REST Mistakes: Sessions are irrelevant"

http://javadialog.blogspot.co.uk/2009/06/common-rest-mistakes.html(点6)

http://www.peej.co.uk/articles/no-sessions.html

引用:

セッションは無関係です。

クライアントが「ログイン」または「接続を開始」する必要はありません。すべてのメッセージにHTTP認証が自動的に実行されます( )。クライアントアプリケーションは、サービスではなく リソースのコンシューマです。したがって、ログインするものはありません! REST Webサービスでフライトを予約しているとします。 サービスへの新しい「セッション」接続を作成しないでください。むしろ に "旅程作成者オブジェクト"と言い、新しい旅程を作成してください。 ブランクの入力を開始できますが、他のブランクを記入するために全く別の コンポーネントをWeb上の他の場所に取得することができます。 セッションがないため、 クライアント間でセッション状態を移行する問題はありません。また、サーバには「セッションアフィニティ」の問題はありません (ただし、ロードバランシングの問題は引き続きあります)。

関連する問題