Остановить ASP.NET MVC 2 корректно ВОССТАНОВИТ svc при ошибке

#c# #web-services #asp.net-mvc-2 #rest

#c# #веб-сервисы #asp.net-mvc-2 #rest

Вопрос:

Я создал веб-службу REST, которая при Application_Start подписывается на другую службу, которая отправляет сообщения подписчикам. Прямо сейчас, если одна из этих подписок завершается неудачей, которую невозможно восстановить, я регистрирую ошибку и выдаю сообщение, чтобы позволить платформе обработать исключение. Я бы действительно предпочел обработать это сообщение более изящно. По какой-то причине я в растерянности относительно того, что мне нужно сделать. Есть ли способ перехватить исключение в событии Application_Start, где я вызываю свой код управления подпиской, а затем останавливаю приложение. Я думаю, что знаю ответ, просто не могу вспомнить, как это сделать.

ТИА!

Ответ №1:

Я бы поместил try / catch вокруг части, которая может завершиться неудачей, и в catch вы могли бы либо выгрузить домен приложения, как указано здесь, что привело бы к повторному запуску Application_Start при следующем запуске, либо вы могли бы просто записать в файл (или скопировать на место) с именем «app_offline.htm «в каталог IIS вашего приложения. Когда этот файл присутствует, IIS автоматически отобразит эту страницу вместо вашего приложения, так что вы могли бы создать статическое сообщение «Извините, мы сейчас отключены. Повторите попытку позже «. страница, чтобы показать пользователям.

Я думаю, вы также могли бы создать пользовательскую страницу ошибок, чтобы показать пользователю, которая выглядела бы лучше, чем страница ServerError по умолчанию.

Комментарии:

1. Спасибо за ответ. Я бы действительно хотел закрыть приложение, если это возможно. Однако, похоже, что выгрузка приложения может быть моим лучшим вариантом.