如何获取Session Waring的默认值?

时间:2018-02-14 06:27:41

标签: javascript asp.net web

我正在使用以下代码获取Session警告的值。但是当我运行代码时,我得到了Null Reference的错误。

function pageLoad() {
    var millisecTimeOutWarning = "<%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"].ToString()) * 60 * 1000 %>";
    alert(millisecTimeOutWarning);
}

1 个答案:

答案 0 :(得分:1)

您的代码没有任何问题,如果AppSetting键SessionTimeoutWarning存在,它将起作用。

当密钥不存在时,

ConfigurationManager.AppSettings抛出'System.NullReferenceException'

请检查您的配置并确保密钥存在。

请注意AppSettingsNameValueCollection

返回的ConfigurationManager对象
 public static NameValueCollection AppSettings
        {
            get
            {
                object section = GetSection("appSettings");
                if (!(section is NameValueCollection))
                {
                    // If config is null or not the type we expect, the declaration was changed. 
                    // Treat it as a configuration error.
                    throw new ConfigurationErrorsException(SR.Config_appsettings_declaration_invalid);
                }

            return (NameValueCollection)section;
        }
    }

如果您尝试从NameValueCollection获取Key的值,它将返回null,如果您将ToString()设置为null,您将获得'System.NullReferenceException'

例如,以下代码将返回您获得的相同错误。

 NameValueCollection AppSettings = new NameValueCollection();
 AppSettings.Add("Key1", "1");
 Debug.Write(AppSettings["Key2"].ToString());
相关问题