0

我在 WebForms 应用程序中使用 System.Web.Routing 程序集。运行部署在 win2008/IIS7 上的应用程序时,我收到以下消息。

会话状态只能在 enableSessionState 设置为 true 时使用,无论是在配置文件中还是在 Page 指令中。还请确保 System.Web.SessionStateModule 或自定义会话状态模块包含在应用程序配置的 \\ 部分中。

这只是使用我配置的路由时的问题。直接导航到 aspx 页面时,这不是问题。

在 web.config 和 Page 指令中都启用了 EnableSessionState。我已将 Session 条目添加到 web.config 的 httpmodule 中。

在我的工作站上使用 Visual Studio 进行开发时,这不是问题。只有在 Win 2008 上尝试在 IIS7 下运行应用程序时才会出现问题。

4

2 回答 2

1

我有同样的问题,我想我知道问题是什么。

我正在尝试在路由系统下实现 FileNotFound 页面(我还没有弄清楚如何同时提供 FileNotFound 页面并在标题中提供 404 响应)

我发现,出于某种原因,使用 BuildManager 注册的页面似乎在没有会话上下文的情况下被实例化(该页面实际上没有被请求,只是被实例化了!)。

至少它似乎是这样做的。


我现在不太确定我之前的断言。显然,当图像请求在物理上不存在时,它们也会通过路由系统。当图像路径匹配时,这会导致IRouteHandler调用。我很确定在请求图像时会话对象不存在,因此当路由到的页面尝试访问它时可能会导致问题。

于 2009-06-04T13:44:35.287 回答
0

我认为您所描述的与我的一个问题相似。

可能是您的 IIS7 以不同的模式运行,而且更像 II6 而不是 7:

几个问题: 1. 您的映射是否正确重定向了您的请求?2. 当你的请求被映射到哪里?3. 如果你通过这个页面追踪是哪一行代码产生了错误(它甚至会影响你的代码)吗?

于 2009-11-17T20:32:48.077 回答