4

我有一个网站,我使用 ASP.NET 成员资格来管理用户创建、登录、角色管理。我使用 Visual Studio 2012。在 web.config 中有很多由 Visual Studio 创建的元素。与会话状态相关的元素之一如下。

sessionState mode="InProc" customProvider="DefaultSessionProvider"

name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"

这个链接中,它说Custom provider is used when mode is set to Custom。第一个问题是,如果是这种情况,为什么 Visual Studio 将会话状态的模式属性生成为 InProc 并同时设置自定义提供程序?第二个问题是会话状态超时。当我向会话状态添加超时值时,时间到了它不会超时。

sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="30"

当我删除 CustomProvider 属性时,超时开始工作。有人对这种情况有更多了解吗?

4

1 回答 1

3

我意识到有关超时的问题与 CustomProvider 属性无关。问题是表单超时和会话状态超时被设置为不同的值。一旦我将它们设置为相同的值,它就开始工作了。

但是 Visual Studio 使用 mode = InProc 和 customProvider = DefaultSessionProvider 创建 sessionState 元素的事实仍然很奇怪,因为 Microsoft 网站说唯一使用 customProvider 的时间是 mode 设置为 Custom 时。

于 2013-03-29T17:14:46.193 回答