У меня странная проблема с исключением NullReferenceException на веб-сайте с высокой посещаемостью, который размещает моя компания. Исключения регистрируются с полными следами стека, но я не могу воспроизвести его.
Исключение возникает несколько раз в день для разных пользователей, и это исключение NullReferenceException, выброшенное в блоке кода ниже:
protected void Page_Load(object sender, EventArgs e)
{
...
if (!Page.IsPostBack)
{
...
this.ViewState[StaticClass.StaticStringProperty] = StaticClass.StaticIntProperty; // this is the line the exception occurs on
...
}
}
Единственное место, где я могу предположить, что будет выдано исключение NullReferenceException, это если ViewState
равно NULL, но я никогда не знал этого и не могу найти причину, по которой это будет иметь место в Page_Load, которая не постбэк.
StaticStringProperty
и StaticIntProperty
оба являются инициализированными, статические свойства StaticClass
.
StaticStringProperty
определяется как:
public const string StaticStringProperty = "IdFromClient";
Кто-нибудь знает, как это могло произойти, или по какой-либо другой причине, по которой в приведенной выше строке будет выдано исключение NullReferenceException?
EDIT
По запросу полная трассировка стека для ошибки выглядит следующим образом. Строка 54 - это линия, которую я выделил выше.
at MyCompany.MyApplication.Appliance.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\shellama\My Documents\MyApplication\Appliance.aspx.cs:line 54
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at MyCompany.MyApplication.PageBase.OnLoad(EventArgs e) in C:\Documents and Settings\shellama\My Documents\MyApplication\App_Code\PageBase.cs:line 58
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)