Как я могу перенаправить сайт обслуживания в asp.net

У нас есть веб-сайт ASP.NET в .NET, который успешно работает в производстве. мы часто поддерживаем наш сервер в определенное время простоя. Следовательно, нам нужна функция для перенаправления всех запросов на веб-страницу сайта, находящегося на обслуживании, во время простоя. Я выполнил эту задачу с помощью Custom Handler, но мой клиент не доволен этим решением. Пожалуйста, предложите альтернативное решение.

Код моего пользовательского обработчика выглядит следующим образом

Добавлено в web.config

    <system.webServer>
        <modules>
          <add name="CustomModule" type="CustomModule"/>
       </modules>
  </system.webserver>

Добавлено в обработчик HTTP

public class CustomModule : IHttpModule
    {
        // In the Init function, register for HttpApplication 
        // events by adding your handlers.
        public void Init(HttpApplication application)
        {

            application.EndRequest +=
                (new EventHandler(this.Application_EndRequest));
        }
}

Код перенаправления находится здесь

private void Application_EndRequest(Object source, EventArgs e)
        {

            if (fileExtension.Equals(".aspx") == true && filePath.Contains("Contact.aspx") == false)
            {
                context.Response.Redirect("Contact.aspx");
            }
        }

person Smaug    schedule 05.08.2013    source источник
comment
Почему заказчик не доволен этим?   -  person David    schedule 05.08.2013
comment
Он уже в производстве. Поэтому они не хотели бы реализовывать собственный обработчик.   -  person Smaug    schedule 05.08.2013
comment
blogs.msdn.com/b/amb/archive/2012/02/03/ при условии, что вы находитесь на последняя версия iis   -  person rene    schedule 05.08.2013
comment
Я в версии .NET 2.0   -  person Smaug    schedule 05.08.2013
comment
Кто-то разместил ссылку @rene, она может работать в 2.0.   -  person hagensoft    schedule 05.08.2013
comment
Судя по вашим ответам, вы, как это ни парадоксально, хотите запускать пользовательский код, но без развертывания кода на сервере. Вы не можете достичь обеих целей.   -  person Greg    schedule 05.08.2013
comment
Как насчет добавления метатега обновления в app_offline.html, как в этом ответе?   -  person rene    schedule 05.08.2013
comment
@rene - я не думаю, что он сможет перенаправить на основной сайт с помощью app_offline. Вероятно, он просто бесконечно перенаправлял бы себя обратно.   -  person Greg    schedule 05.08.2013
comment
@ Грег, хммм, ты, наверное, прав ... в таком случае это похоже на уловку 22 ...   -  person rene    schedule 05.08.2013


Ответы (3)


Просто используйте app_offline.htm, как описано здесь. и здесь.

Если вы хотите, чтобы сайт не работал в течение определенного периода времени (или для какого-либо другого внешнего события и т. д.), вы можете запустить (запланированный) скрипт на сервере для создания или удаления файла app_offline.htm при необходимости.

person muratgu    schedule 05.08.2013
comment
Если лучше, если вы предложите перенаправление с самого asp.net - person Smaug; 05.08.2013

App_Offline.html сделает это.

Прочитайте App_Offline.html здесь.

person Karl Anderson    schedule 05.08.2013
comment
Мне нужна функция для перенаправления с моей веб-страницы. потому что я хочу сделать автоматический расчет времени простоя. Если затем, перенаправьте на веб-страницу обслуживания - person Smaug; 05.08.2013

Если вы не можете развернуть код на рабочем сервере, как насчет использования пакетного файла запланированных задач (или пользовательской программы) для развертывания и удаления App_Offline.html по расписанию?

person Greg    schedule 06.08.2013