HttpApplication クラスの PreRequestHandlerExecute イベント ハンドラーで nhibernate セッションを作成しています。
MVC では問題なく動作しますが、WCF (REST) ではイベントが発生しません。
それを実現する方法や、MVC と WCF/Rest の両方でセッションを設定するための他のより良いアイデアはありますか?
前もって感謝します、
アンドレ・カルッチ
HttpApplication クラスの PreRequestHandlerExecute イベント ハンドラーで nhibernate セッションを作成しています。
MVC では問題なく動作しますが、WCF (REST) ではイベントが発生しません。
それを実現する方法や、MVC と WCF/Rest の両方でセッションを設定するための他のより良いアイデアはありますか?
前もって感謝します、
アンドレ・カルッチ
わかった!
この記事で答えを見つけました:
http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx
混合モードで WCF を使用する場合、モジュールはパイプラインの初期段階であるBeginRequestで要求をインターセプトします。つまり、他のイベントは呼び出されません。
これを修正するために、web.config を変更して、WCF が Asp.Net 互換モードで動作するようにしました。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
そして、私のサービスにも互換性があることを明示的に伝えます:
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService : IMyService { ...
そして完了!これで、すべてのイベントと、 OperationContext.Currentの代わりにHttpContext.Currentができました。
これが同じ問題を抱えている人に役立つことを願っています。
乾杯、
アンドレ・カルッチ