ELMAH внутри тематической ошибки страницы - PullRequest
5 голосов
/ 11 февраля 2010

У меня есть тематическая страница, по которой тема выбирается внутри модуля http. </p> <pre><code>public void context_PreRequestHandlerExecute(object sender, EventArgs e) { Page p = HttpContext.Current.Handler as Page; if (p != null) { //get theme string theme = GetTheme(HttpContext.Current.Request.Url.Host); Debug.WriteLine(String.Format("Loading theme {0}", theme)); //set theme of page p.Theme = theme; } }

Теперь, когда я запрашиваю elmah.axd, выдается следующее исключение:

Использование тематических CSS-файлов требует элемента управления заголовком на странице. (например).

Когда я отключаю модуль темы http, все в порядке, и отображается страница elmah.axd. Я думаю, что это небольшая ошибка внутри ErrorLogPage. ErrorLogPage должен справляться с тем, что тема может быть передана странице ИЛИ вообще игнорировать данную тему.

Пока я использую обходной путь:

private const string ELMAH_ERROR_PAGE = "Elmah.ErrorLogPage";</p> <pre><code> if (p.GetType().FullName != ELMAH_ERROR_PAGE) { p.Theme = theme; }

У вас есть идеи или мысли получше?

Gr

Мартейн

Нидерланды

1 Ответ

0 голосов
/ 27 февраля 2011

На решение вашей проблемы уже был дан ответ:
Исключить некоторые страницы из использования HTTPModule .

Вместо этого вы можете использовать HTTPHandler HTTPModule. Обработчики позволяют вам указать путь при объявлении их в Web.Config.

<add verb="*" path="/validate/*.aspx" type="Handler,Assembly"/>

Если вы должны использовать HTTPModule, вы может просто проверить путь запрос, и если это будет один исключено, обойти проверку.

...