Server.Transfer и System.Threading.ThreadAbortException

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

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

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

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

1 ответ

Решение

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

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

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

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

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