我已经设置并使用SQLServer状态处理,它在我的项目中运行良好。但我有共享资源文件,提供从数据库加载图像的处理程序等。在此模块中,Session始终为Null。我尝试过以下方法:
还有什么能让会话变量在模块中可用吗?我对.net比较新,所以我可能使用了不正确的术语。很清楚,我已经定义了“解决方案”。在这个解决方案中是一个名为CMS的“项目”。解决方案中还有另外两个项目 - 一个用于处理共享类,另一个用于处理程序。这些外部文件通过引用包含在主项目中(当然,或根本不起作用)。在这些“外部”项目中,我似乎无法访问Session变量。
非常感谢任何帮助。 O,虽然我对RTFM类型的响应很好,但我之前提出的问题指出了很长的理论MSDN文档很少有用,因为它们对我的理解太深了。试着给一个兄弟一个休息吧?
答案 0 :(得分:4)
您需要在类声明中使用IReadOnlySessionState或IRequiresSessionState接口,如下所示:
public sealed class MyHandler : IHttpHandler, IReadOnlySessionState {
答案 1 :(得分:1)
由于您使用了这两个术语,因此不确定您的是IHttpHandler还是IHttpModule。
对于处理程序,如果需要Session,则还需要实现IRequireSessionState。
如果要在HttpModule中访问会话状态,请确保将您的EventHandler添加到HttpApplications PreRequestHandlerExecute“事件,而不是”BeginRequest“事件。