我正在 HttpApplication 类的 PreRequestHandlerExecute 事件处理程序中创建我的休眠会话。
它适用于 MVC,但是,在 WCF (REST) 中,该事件永远不会被触发。
有没有办法让它发生或任何其他更好的想法在 MVC 和 WCF/Rest 中设置会话?
提前致谢,
安德烈·卡鲁奇
我正在 HttpApplication 类的 PreRequestHandlerExecute 事件处理程序中创建我的休眠会话。
它适用于 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 { ...
并做了!现在我有所有事件以及HttpContext.Current而不是OperationContext.Current
我希望这可以帮助有同样问题的人。
干杯,
安德烈·卡鲁奇