C# 当会话提供程序';配置中没有设置什么?

C# 当会话提供程序';配置中没有设置什么?,c#,asp.net,C#,Asp.net,我目前正在实现自己的会话提供程序,如果配置文件中不存在条目,我想知道会话提供程序中是否设置了默认值20分钟,或者我的会话提供程序是否应该从其他地方获取它。 根据我上面链接的文章,如果没有设置超时值,将使用默认值20分钟。自定义提供程序和内置提供程序都是如此。您可以使用Session.Timeout来获取Global.asax中的值,您可以设置 会话超时 在会话中\u在代码中的其他位置启动或设置它。我在全局配置文件中找不到该值,但它是在某个地方定义的 使用以下代码,您可以获得会话超时值,无论它是否

我目前正在实现自己的会话提供程序,如果配置文件中不存在条目,我想知道会话提供程序中是否设置了默认值20分钟,或者我的会话提供程序是否应该从其他地方获取它。


根据我上面链接的文章,如果没有设置超时值,将使用默认值20分钟。自定义提供程序和内置提供程序都是如此。

您可以使用Session.Timeout来获取Global.asax中的值,您可以设置

会话超时


在会话中\u在代码中的其他位置启动或设置它。

我在全局配置文件中找不到该值,但它是在某个地方定义的

使用以下代码,您可以获得会话超时值,无论它是否在本地web.config中定义

Configuration conf = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
SessionStateSection section = (SessionStateSection) conf.GetSection("system.web/sessionState");
int timeout = (int) section.Timeout.TotalMinutes;
尝试使用:

System.Int64 timeout = System.Web.HttpContext.Current.Session.Timeout; // The time-out period, in minutes

HttpContext.Session
null
。我也读过,但我需要当前超时值,
HttpContext.Session
null
。如果httpcontext.session为null,则会话对象不会启动,并且没有超时,也没有其他与会话相关的信息。我很确定它是在调用会话提供程序后构造的。如果您正在实现自己的会话提供程序,应该考虑在配置文件中查看默认提供程序是否有任何设置。但是,您应该查看自己的配置(为您的会话提供程序)以找出实现的超时。我考虑过这一点,但想知道20分钟是默认会话提供程序中的实现细节,还是在其他地方可用。问题是关于获取值,并且
HttpContext.Session
为空。您是否尝试使用HttpContext.Current.Session?我实际上有一个表示当前上下文的实例化的
HttpContext
<因此,code>HttpContext.Current.Session也是
null
。请检查此链接:。希望有帮助。我很确定它是在调用会话提供程序后构建的。如果当前会话未启动(例如,在应用程序启动期间),则会引发空引用异常