ViewState имеет значение NULL в Page_Load, но не при обратной передаче - PullRequest
1 голос
/ 04 июня 2010

У меня странная проблема с исключением 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)

1 Ответ

0 голосов
/ 04 июня 2010

Единственное, что я могу сказать по этому поводу (у меня недавно была похожая ситуация), это то, что StaticClass.StaticStringProperty равно NULL. Но опять же, вы должны были обратить на это внимание. Я не могу думать ни о чем другом.

...