Альтернатива Response.End()?

Я обрабатываю запрос begin_request. В данный момент я использую Response.End(), чтобы asp.net не делал ничего другого. Response.End() выбрасывает исключение, есть ли не исключительный способ, которым я могу завершить запрос?

Если вы задаетесь вопросом, почему у меня нет файла, это bc, я сообщаю nginx, какой файл использовать через заголовок ответа http, поэтому мне больше нечего делать в asp.net. Response.End генерирует исключение, которое должно собирать информацию о стеке и все такое. Я, очевидно, не нуждаюсь в этом, и из моих прошлых вопросов я знаю, что бросать исключения - это дорого. Так как же я могу сделать где?

2 ответа

Решение

HttpResponse.End() создает исключение по дизайну; это должно работать.

Только когда ThreadAbortException брошен, делает поток, который представляет конец ответа. Если нет никаких исключений, ответ не заканчивается.

Одним из вариантов будет позвонить HttpContext.Current.ApplicationInstance.CompleteRequest вместо. Это предотвратит дальнейшее выполнение кода, перейдя прямо к Application_EndRequest событие.

вызовите метод HttpContext.Current.ApplicationInstance.CompleteRequest() вместо Response.End, чтобы пропустить выполнение кода для события Application_EndRequest

http://support.microsoft.com/kb/312629

Другие вопросы по тегам