Server.Transfer и System.Threading.ThreadAbortException - PullRequest
1 голос
/ 08 мая 2009

См. http://support.microsoft.com/kb/312629/EN-US/

Я также использую reponse.direct в своем приложении и не получаю исключения. Обходной путь, который предлагает статья базы знаний (Server.Execute), не работает для меня. Я получаю множество исключений javascript из Ajax Toolkit на целевой странице, если я использую Server.Execute, и я не стал разбираться в причине.

Мой вопрос - какие аргументы вы видите против того, чтобы глотать исключение как «известное ограничение» и двигаться дальше?

Моя причина использования Server.Transfer в этом очень специфическом случае заключается в том, что я хочу замаскировать (реальный) целевой URL-адрес страницы, которая фактически выполняется. Он работает довольно хорошо, за исключением этого исключения (которое пользователь никогда не видит).

1 Ответ

5 голосов
/ 08 мая 2009

Убедитесь, что вы не вызываете Server.Transfer () в обработчике исключений (try..catch / finally).

Редактировать:

Server.Transfer всегда вызывает исключение ThreadAbortException по завершении. Если вы поместите его в обработчик исключений, вы должны отлавливать явные типы исключений, а не просто «Исключение».

См. Справку для Server.Transfer на MSDN . Вот информация о ThreadAbortException

...