Почему Sitecore генерирует исключение NullReferenceException, когда я перенаправляю на одну из его страниц? - PullRequest
5 голосов
/ 28 февраля 2010

Я использую Sitecore 6.1 в Windows 2008, IIS7 и пытаюсь использовать модуль перезаписи URL для перенаправления. Когда я включаю правило и нажимаю на URL, который его запускает, я получаю YSOD. Это же правило прекрасно работает на не-sitecore сайтах на той же машине. Согласно Failed Request Trace, модуль перезаписи работает нормально, но затем Sitecore генерирует исключение, даже если перенаправление указывает на другой сервер. Вероятно, это результат того, что я неправильно настроил, но я просто не могу понять, почему это не работает. Детали из YSOD ниже.

[NullReferenceException: Object reference not set to an instance of an object.]  
   Sitecore.Nexus.Web.HttpModule.(Object sender, EventArgs e) +273  
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68  
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75  

Ответы [ 5 ]

3 голосов
/ 01 марта 2010

Sitecore имеет свой собственный механизм для перенаправления URL, поэтому некоторые провода, вероятно, пересекаются здесь. Возможно, вам нужно переместить ваш HttpModule, чтобы он выполнялся раньше в цепочке.

2 голосов
/ 06 октября 2011

Sitecore утверждает, что исправил это в выпуске 6.2 rev.100831 (обновление 4) - http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/ReleaseNotes/KnownIssues%20Recommended/Rewriting%20URLs.aspx

1 голос
/ 19 июля 2010

Используйте конвейерный режим «Классический», а не «Интегрированный»

http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/ReleaseNotes/KnownIssues%20Recommended/Rewriting%20URLs.aspx

1 голос
/ 01 июля 2010

Вы можете получить ту же ошибку при выполнении

Response.Redirect("~/SomeUrl.aspx")

в коде C #, способ исправить это, используя перегруженный:

Response.Redirect("~/SomeUrl.aspx", true)

, который немедленно завершит ответ.

Модуль перезаписи явно не завершает запрос, немедленно позволяя Sitecore решить эту проблему. Вы можете обойти эту проблему, создав модуль для работы с перенаправлениями или попытавшись расширить модуль перезаписи URL, чтобы немедленно завершить ответ.

0 голосов
/ 09 июля 2014

Я испытал это в экземпляре MultiSite на Sitecore v6.5, см. Мой ответ здесь: Исключение Sitecore NullReferenceException на GetBrowserClassString

...