Я ищу подтверждение наблюдаемого, но недокументированного поведения IIS 7.5, так как я не могу найти это поведение документированным на сайте MS.Мне нужен способ проходить только через пользовательские исключения, генерируемые с помощью нового Exception (), у меня customErrors установлен в Off и следующее в web.config
<httpErrors existingResponse="Auto">
<clear/>
</httpErrors>
Я не использую TrySkipIisCustomErrors в моем коде вообщено это, кажется, работает по мере необходимости.Системные ошибки по-прежнему ведут себя как "customErrors = 'On'", но мои пользовательские исключения отправляются в мой вызов Ajax, где я анализирую его, чтобы показать сообщение.Это мой тестовый веб-метод:
public string Update(Models.CaseData appData, Models.CaseData appDataCache)
{
//Test 1. trigger system error
var t = 0;
var x = 1;
var p = x / t;
var sendEmail = IsModified(appData, appDataCache);
//Test 2. Throw user defined error
if (appDataCache != null && !sendEmail)
{
throw new Exception("Your changes do not require sending email. Are you sure you want to save these changes?".ToJsonError(type: "confirm"));
}
}
- Тест 1 - это деление на ноль
- Тест 2 - мое пользовательское исключение.
Если я продолжу тест1 Я получаю общее сообщение «Произошла ошибка при обработке запроса» из IIS, но если я закомментирую его, мое пользовательское исключение из теста 2 перейдет к обработчику ошибок Ajax.
Именно так мне и нужен IIS для работы, но я не уверен, является ли это поведение IIS конструктивным или я сталкиваюсь с какой-то ошибкой IIS, которая работает в мою пользу, своего рода колеблющейся, чтобы доставить ее в производство,
Пожалуйста, посоветуйте или помогите с предложением другого решения, позволяющего обходить только пользовательские исключения.
Спасибо.