2014-10-07 1 views
0

Я создал и зарегистрировал пользовательский модуль http, чтобы показать сообщение об обслуживании пользователю после того, как администратор включит режим обслуживания с помощью изменения конфигурации.Модуль режима пользовательского обслуживания не работает с ролью Azure Web

Когда я передаю запрос для html, он должен возвращать пользовательский html, загруженный из файла, но он возвращает сообщение: «Служба недоступна.« Я не могу найти эту строку во всем моем решении. Пользовательское сообщение журнала из настраиваемого модуля обслуживания записывается в журналы log4net.

... INFO DdiPlusWeb.Common.MaintenanceResponder - Режим обслуживания включен. Запрос отклонен. RequestUrl = ...

Кажется, что-то пропущено в IIS на Azure. Что-то перехватывает мой ответ 503. Как это исправить?

кода модуля

void context_BeginRequest(object sender, EventArgs e) 
    { 
     HttpApplication application = (HttpApplication)sender; 
     HttpContext context = application.Context; 
     if (AppConfig.Azure.IsMaintenance) 
     { 
      MaintenanceResponder responder = new MaintenanceResponder(context, MaintenaceHtmlFileName); 
      responder.Respond(); 
     } 
    } 

Интересная часть коды ответчик.

private void SetMaintenanceResponse(string message = null) 
    { 
     _context.Response.Clear(); 
     _context.Response.StatusCode = 503; 
     _context.Response.StatusDescription = "Maintenance"; 
     if (string.IsNullOrEmpty(message)) 
     { 
      _context.Response.Write("503, Site is under maintenance. Please try again a bit later."); 
     } 
     else 
     { 
      _context.Response.Write(message); 
     } 
     _context.Response.Flush(); 
     _context.Response.End(); 
    } 

EDIT: Я солгал. Сожалею. Модуль обслуживания возвращает одно и то же сообщение для запросов, ожидающих json или html.

ответ

0

This ответ привел меня к решению.

Я добавил еще одну строку в метод SetMaintenanceResponse.

_context.Response.TrySkipIisCustomErrors = true; 

Это работает сейчас. Here больше о том, что именно это означает.

Смежные вопросы