У меня есть однофайловый веб-сервис ASP.Net (файл .ashx
, содержащий реализацию IHttpHandler
), который должен иметь возможность возвращать ошибки в виде ответов с внутренними ошибками сервера 500 кодами состояния,Это относительно простая вещь в PHP:
header("HTTP/1.1 500 Internal Server Error");
header("Content-Type: text/plain");
echo "Unable to connect to database on $dbHost";
Эквивалент ASP.Net (C #) должен быть:
Context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
Context.Response.ContentType = "text/plain";
Context.Response.Write("Unable to connect to database on " + dbHost);
Конечно, это не работает так, как ожидалось;вместо этого IIS перехватывает код состояния 500, удаляет все, что я записал в объект Response
, и отправляет либо отладочную информацию, либо пользовательскую страницу ошибки, в зависимости от того, как настроено приложение.как я могу подавить такое поведение IIS и отправить информацию об ошибках непосредственно из моей IHttpHandler
реализации?
Это приложение является портом из PHP;клиентская сторона уже написана, так что я по сути застрял с этой спецификацией.Отправка ошибок с кодом состояния 200, к сожалению, не вписывается в форму.
В идеале мне нужно программно контролировать поведение, потому что это часть SDK, которую мы хотим распространять без какого-либо " edit thisfile"и" изменить эту настройку IIS"дополнительные инструкции.
Спасибо!
Edit : отсортировано.Context.Response.TrySkipIisCustomErrors = true
был билет.Ничего себе.