Я создал и зарегистрировал пользовательский модуль 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.