在WebForms中使用system.web.routing时的状态服务

时间:2008-10-02 07:37:08

标签: asp.net iis-7 routing

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

  

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

使用我配置的路线时,这只是一个问题。直接导航到aspx页面时不会出现问题。

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

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

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我想我知道问题是什么。

我正在尝试在路由系统下实现一个FileNotFound页面(我还要弄清楚的是如何同时给出一个FileNotFound页面并在标题中给出一个404响应)

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

至少这就是它的目的。


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

答案 1 :(得分:0)

我认为你所描述的内容类似于我所拥有的question

可能是你的IIS7在不同的模式下运行nad更像是II6而不是7:

几个问题: 1.您的映射是否正确重定向了您的请求? 2.当您的请求被映射到哪里时? 3.如果你在这个页面中追踪到什么行代码产生了错误(它甚至命中你的代码)?