我有一个网站,我使用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"
在this link中,它表示Custom provider is used when mode is set to Custom
。第一个问题是,如果是这样的话,为什么Visual Studio会将会话状态的模式属性生成为InProc并同时设置自定义提供程序?第二个问题是会话状态超时。当我向会话状态添加超时值时,它在时间结束时不会超时。
sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="30"
删除CustomProvider属性后,超时开始工作。有没有人对这种情况有更多的内心?
答案 0 :(得分:3)
我意识到关于超时的问题与CustomProvider属性无关。问题是表单超时和会话状态超时被设置为不同的值。一旦我将它们设置为相同的值,它就开始工作了。
但仍然是Visual Studio使用mode = InProc和customProvider = DefaultSessionProvider创建sessionState元素的事实很奇怪,因为Microsoft网站说使用customProvider的唯一时间是当mode设置为Custom时。