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