IIS Express 不保留会话数据

Luk*_*uke 4 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(object sender, EventArgs e) 方法,该方法将应用程序重定向到起始页面,其中指令 Session.Clear() 清除会话。现在的问题是:为什么要额外调用 context_BeginRequest 方法?为什么它重定向到起始页面而不是它当前所在的页面?谢谢,卢克。

小智 6

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

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

经过进一步审查,我注意到我的 system.web 中有一行<httpCookies requireSSL="true" />当我将其注释掉时,一切都像往常一样。

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