IIS Express不保留会话数据

时间:2014-11-18 13:20:40

标签: session-state iis-express

我有一个应用程序,我在IIS Express服务器下的Visual Studio 2013中运行。问题是会话数据没有保存在页面之间,我找到的空对象之前没有为空。如果我编译应用程序并将其部署在带有IIS的Web服务器上,它可以正常工作,因此必须使用IIS Express。我搜索了文件夹中的配置文件,但实际上不知道它是什么。

谢谢, 路加

编辑25/11:我在VS 2013和VS 2010的同一台机器上调试代码,我发现代码的行为有所不同。执行完代码并构建页面后,在VS 2010中执行结束。在VS 2013中构建页面后,我再次调用方法context_BeginRequest(对象发送者,EventArgs e),该方法将应用程序重定向到起始页面,其中指令Session.Clear()清除会话。现在的问题是:为什么还有对context_BeginRequest方法的额外调用?为什么它会重定向到起始页面,而不是重定向到当前页面?谢谢,卢克。

1 个答案:

答案 0 :(得分:4)

我遇到了类似的问题。我的代码在生产服务器上运行正常,但是当我在测试机器上调试它时,保存和重定向之间的会话将为空。

当我将会话状态设置为无cookie,<sessionState cookieless="true"时,会话变量将被保留。这是不可取的,因为它将会话名称添加到URL。

经过进一步审核,我注意到我的系统中有一行.web <httpCookies requireSSL="true" />当我评论它时,一切正常。

问题是我的生产IIS服务器使用https://托管代码,而我的测试IIS Express服务器只使用http。所以我的不安全的cookie被丢弃了。

相关问题