2009-05-08 2 views
1

См http://support.microsoft.com/kb/312629/EN-US/Server.Transfer и System.Threading.ThreadAbortException

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

Мой вопрос: какие аргументы вы считаете против простого проглатывания исключения как «известного ограничения» и перехода?

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

ответ

5

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

Edit:

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

См. Справку по Server.Transfer по адресу MSDN. Здесь будет представлена ​​информация о ThreadAbortException

+0

Почему бы и нет? Если я не поймаю его на исходной странице, исключение сохранится. – cdonner

+0

См. Обновленный ответ. –

Смежные вопросы