欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

iis部署asp.net网站后提醒只有在配置文件或 page 指令中将 enablesessionstate 设置为 true 时,才能使用会话状态.

更新时间: 2014-01-05 01:50:17 责任编辑: Author_N1

 

IIS部署ASP.NET网站后提示只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态...

今天,在IIS上部署网站后,出现了下面错误:

只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 <system.web><httpModules> 节中包括 System.Web.SessionStateMod 或自定义会话状态模块。



这段代码在web用户空间中,一开始,百思不得其解,因为在Visual Sutio 2008中调试时没有出现这样的问题,于是百度后,有的说改Web.config中

<sessionState mode="StateServer" sqlConnectionString="data source=.;Integrated Security=SSPI" timeout="1440" />

可是改过后,还是没有效果,又有的说重新建立工程,将文件一一重新复制进去,可以最后还是没有用。

想想以前也用过这个控件,没有出过错啊,这个问题困惑了许多,某天,突然想到是不是session的问题,于是,这样定义了session:

HttpContext context = HttpContext.Current;

而后,再使用:

if (context.Session["user"] != null)
{
}

后,提示:



这是错误变了,是session的问题了,突然想到会不会跟我之前使用URLRewriter.dll页面伪静态化有关呢?

百度了一下,改了下web.config竟然有用了。

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>

找了下原因:

Session为空,程序没有异常,那么问题就出在做伪静态的URL重写。IIS判断伪静态页面请求不满足Session这个配置节的默认的运行条件:managedHandler,就是说IIS认为这个请求只是请求一个静态文件。静态文件使用session是肯定会错的。

至此,网页使用正常。


大家还可以参考:http://my.oschina.net/knightuniverse/blog/119255

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:50:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1817/
本文WWW.DOC100.NET DOC100.NET版权所有。