4

HttpApplication クラスの PreRequestHandlerExecute イベント ハンドラーで nhibernate セッションを作成しています。

MVC では問題なく動作しますが、WCF (REST) ではイベントが発生しません。

それを実現する方法や、MVC と WCF/Rest の両方でセッションを設定するための他のより良いアイデアはありますか?

前もって感謝します、

アンドレ・カルッチ

4

1 に答える 1

8

わかった!

この記事で答えを見つけました:

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ができました。

これが同じ問題を抱えている人に役立つことを願っています。

乾杯、

アンドレ・カルッチ

于 2009-07-16T19:05:57.040 に答える