【问题标题】:IIS on Local Machine Not Saving Session State本地计算机上的 IIS 未保存会话状态
【发布时间】:2017-03-13 16:55:27
【问题描述】:

我目前在我的开发机器上有一个本地 IIS 实例,我正在使用它来开发 ASP.NET MVC 应用程序。我有 IIS8,目前网站正在加载,除了会话状态之外,一切似乎都运行良好。

当单步执行我的代码时(所有这些都在我们的演示服务器上运行良好 - 所以我知道这不是代码),似乎会话变量已设置,没有引发任何异常。但是,每当我尝试访问其中一个变量时,该值都会以空字符串 ("") 的形式返回。我已经检查了我知道要在 web.config 中查找的内容,以及IIS中的设置没有运气。我的 Web.Config sessionState 设置如下所示:

<sessionState mode="InProc" timeout="240" />

我尝试在此处添加其他设置,例如无 cookie 等...但是我没有任何运气。我也玩过 IIS 中的设置,当前设置在此屏幕截图中:http://screencast.com/t/Vny4uUqMleB

编辑:添加一些会话状态代码以供参考。请注意,尽管我努力让他们切换到 C#,但这个系统是用 VB 编写的:(

首先,这将是它被设置的一个例子——我们有一个用于管理状态(会话、cookie、应用程序等)的类。 “key”和“value”都是传入的字符串变量。

HttpContext.Current.Session(key) = value

当读取值时,同样的情况,代码被包装在一个用于管理状态的类中,但这将是重要的一行:

  //Read value from session state
  If Not (HttpContext.Current.Session(key) Is Nothing) Then
    strValue = HttpContext.Current.Session(key).ToString()
  End If

如果有人可以就下一步看什么、可能会影响它的事情或任何线索给我一些指导,我将不胜感激!

【问题讨论】:

  • 要回答这个问题,我们需要一些示例代码来展示您如何设置和检索 Session 值。
  • 给我一点时间,我会编辑我的帖子。谢谢!
  • 全部设置,如果您需要查看状态函数的完整定义,我可以添加这些,但 99% 只是决策代码,我已经验证有问题的行是被命中的行在执行期间。
  • 代码似乎没问题。现在有一个更大的任务:去这里检查/做它所说的一切......iis.net/configreference/system.webserver/asp/session
  • 关于它 - 可能需要我一点时间,因为我目前正在同时处理其他事情,但我会在完成后报告。谢谢!

标签: asp.net-mvc session iis session-variables iis-8


【解决方案1】:

所有功劳归于主要帖子中的彼得 B。他发给我这个链接https://www.iis.net/configreference/system.webserver/asp/session

具体来说,在设置完成后强制您安装 ASP 库的部分是为我解决的问题。转到 IIS 中的 ASP 图标,确保会话已设置,重新启动调试,我的所有会话问题都消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2010-10-22
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多