我正在使用以下代码获取Session警告的值。但是当我运行代码时,我得到了Null Reference的错误。
function pageLoad() {
var millisecTimeOutWarning = "<%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"].ToString()) * 60 * 1000 %>";
alert(millisecTimeOutWarning);
}
答案 0 :(得分:1)
您的代码没有任何问题,如果AppSetting键SessionTimeoutWarning
存在,它将起作用。
ConfigurationManager.AppSettings
抛出'System.NullReferenceException'
。
请检查您的配置并确保密钥存在。
请注意AppSettings
是NameValueCollection
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());