Если мое ASP.NET веб-приложение не подходит для времени выполнения? - PullRequest
2 голосов
/ 12 ноября 2010

Я хочу запустить некоторые тесты, когда мое веб-приложение ASP.NET подключится к сети (желательно, прежде чем кто-либо попытается получить к нему доступ), чтобы убедиться, что все мои зависимости времени выполнения доступны, как я и ожидаю.

Когда подходящее время для выполнения этих тестов (например, Application_Start, Application_Init, где-то еще и т. Д.), И каков хороший способ сделать мое веб-приложение недоступным для пользователей, если мои тесты не пройдены (он разделяет пул приложений с другими приложениями, которые я не хочу влиять)?

Ответы [ 2 ]

3 голосов
/ 12 ноября 2010

Один из подходов состоит в том, чтобы поместить ваши проверки в событие Application_Start и обновить статическое свойство (или свойства) в классе Global с результатом вашего теста.

Если вы используете мастер-страницы, каждая мастер-страница (лично я никогда не видел более двух базовых мастер-классов в проекте) может проверять статическое свойство в классе Global и перенаправлять на страницу «приложения в автономном режиме» при необходимости. Поскольку статическое свойство будет обновляться только при запуске приложения, не должно быть никакого влияния на производительность.

Код в событии OnLoad вашей главной страницы может выглядеть следующим образом ...

if (!Global.WasDependencyCheckSuccessful)
{
//redirect to error page
}

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

3 голосов
/ 12 ноября 2010

Вы можете поместить его в событие Application_Start в global.asax.

Чтобы перевести ваше приложение в автономный режим, просто создайте файл App_Offline.htm .Я делаю это на нашем сервере, имея файл «App_Offline.html», и когда мне нужно перевести его в автономный режим, у меня есть код, переименовывающий его, чтобы изменить расширение с .html на .htm, и обратный, чтобы вернуть его в оперативный режим.

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

...