Dhineshkumar Velmayil Ответов: 1

Ошибка null ссылки на объект в веб-конфигурации.


Всем Привет,

Когда я пытаюсь получить доступ к своей веб-странице, произошла следующая ошибка. Я не знаю, почему здесь произошла эта ошибка. Все ответы приветствуются.

Server Error in '/PreProcess' Application.

Object reference not set to an instance of an object. 
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

 Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


 The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

   <%@ Page Language="C#" Debug="true" %>

or:

2) Add the following section to the configuration file of your application:

<configuration>
    <system.web>
        <compilation debug="true"/>
    </system.web>
</configuration>

 Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.  

Stack Trace: 



[NullReferenceException: Object reference not set to an instance of an object.]
   Suncor.Framework.UI.BasePage.get_MessagePanelMasterProperty() in D:\Refining_and_Marketing\Utilities\RMWebTkt.net\trunk\Code\ApplicationSource\RMWebTkt.Net4\Framework\Suncor.Framework.UI\BasePage.cs:242
   Suncor.Framework.UI.BasePage.get_MessagePanel() in D:\Refining_and_Marketing\Utilities\RMWebTkt.net\trunk\Code\ApplicationSource\RMWebTkt.Net4\Framework\Suncor.Framework.UI\BasePage.cs:249
   Suncor.Framework.UI.BasePage.AddBulletedMessage(String message, Object[] args) in D:\Refining_and_Marketing\Utilities\RMWebTkt.net\trunk\Code\ApplicationSource\RMWebTkt.Net4\Framework\Suncor.Framework.UI\BasePage.cs:278
   Suncor.Framework.UI.BasePage.AddErrorMessage(String message, Object[] args) in D:\Refining_and_Marketing\Utilities\RMWebTkt.net\trunk\Code\ApplicationSource\RMWebTkt.Net4\Framework\Suncor.Framework.UI\BasePage.cs:289
   Suncor.Framework.UI.BasePage.OnError(EventArgs e) in D:\Refining_and_Marketing\Utilities\RMWebTkt.net\trunk\Code\ApplicationSource\RMWebTkt.Net4\Framework\Suncor.Framework.UI\BasePage.cs:414
   System.Web.UI.Page.HandleError(Exception e) +86
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8422
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +253
   System.Web.UI.Page.ProcessRequest() +78
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.cardordering_monerisreceiptproxy_aspx.ProcessRequest(HttpContext context) +4
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75



Спасибо,
НЕ ЗНАЮ

Что я уже пробовал:

Измените режим компиляции в web cofig.

F-ES Sitecore

Этот вопрос задают несколько раз в день. Пожалуйста, погуглите сообщение об ошибке, прежде чем отправлять вопрос.

Dhineshkumar Velmayil

вы можете отправить ссылку на ответ на вопрос. Я тоже старался.
Но большинство людей, столкнувшихся с проблемой MAC, потерпели неудачу. Но в моем сценарии ни один MAC не вышел из строя. Вот почему я здесь, мой дорогой друг.

F-ES Sitecore

Мы не можем получить доступ к вашему коду или запустить ваш сайт, поэтому мы ничего не можем сделать, вам нужно будет использовать отладчик, чтобы точно отследить, что вызывает ошибку. Из стека проследите что-нибудь в "get" для MessagePanelMasterProperty на вашей базовой странице. Вероятно, он обращается к элементу управления и использует его, прежде чем проверить его существование, но это всего лишь предположение.

Dhineshkumar Velmayil

Спасибо за ваш ответ. Мой код локально работает очень хорошо. Но когда мы переходим на сервер, Эта проблема возникает. (только dll перемещаются на сервер). В любом случае, еще раз спасибо.

НЕ ЗНАЮ

1 Ответов

Рейтинг:
2

OriginalGriff

Это одна из самых распространенных проблем, которые нам задают, и это также та, на которую мы меньше всего готовы ответить, но вы больше всего готовы ответить сами.

Позвольте мне просто объяснить, что означает ошибка: вы пытались использовать переменную, свойство или возвращаемое значение метода, но оно содержит null - что означает, что в переменной нет экземпляра класса.
Это немного похоже на карман: у вас есть карман в рубашке, в котором вы держите ручку. Если вы сунете руку в карман и обнаружите, что там нет ручки, вы не сможете подписать свое имя на листе бумаги - и вы получите очень забавный вид, если попытаетесь! Пустой карман дает вам нулевое значение (здесь нет ручки!), поэтому вы не можете сделать ничего такого, что обычно делали бы, когда извлекли свою ручку. Почему он пуст? Вот в чем вопрос - может быть, вы забыли взять ручку, когда уходили из дома сегодня утром, или, возможно, вы оставили ручку в кармане вчерашней рубашки, когда снимали ее вчера вечером.

Мы не можем сказать, потому что нас там не было, и, что еще важнее, мы даже не можем видеть вашу рубашку, не говоря уже о том, что находится в кармане!

Вернемся к компьютерам, и вы каким - то образом сделали то же самое-и мы не можем увидеть ваш код, а тем более запустить его и узнать, что содержит null, когда это не должно быть.
Но вы можете - и Visual Studio поможет вам здесь. Запустите свою программу в отладчике, и когда она выйдет из строя, VS покажет вам строку, на которой она обнаружила проблему. Затем вы можете начать просматривать различные его части, чтобы увидеть, какое значение равно null, и начать просматривать свой код, чтобы выяснить, почему. Поэтому поставьте точку останова в начале метода, содержащего строку ошибки, и снова запустите программу с самого начала. На этот раз VS остановится перед ошибкой и позволит вам изучить, что происходит, пройдя через код, глядя на ваши значения.
Если это происходит только в производстве, то вам нужно вместо этого начать протоколирование-добавление кода для вывода состояния переменных в файл для последующего прочтения-чтобы выяснить, что такое null и почему.

Но мы не можем этого сделать - у нас нет вашего кода, мы не знаем, как его использовать, если бы он у нас был, у нас нет ваших данных. Так что попробуйте - и посмотрите, сколько информации вы сможете узнать!