Member 12640353 Ответов: 1

Response.redirect вызывает исключение потока


Ответ перенаправления бросать исключение, как исключение нить

Невозможно вычислить выражение, потому что код оптимизирован или собственный фрейм находится поверх стека вызовов

Что я уже пробовал:

Я попробовал ответить.Перенаправление("/google.com", ложь). Который не выполняется, так как Endresponse является ложным, он не будет вызывать перенаправление.

ZurdoDev

Насколько я помню, вы можете игнорировать эту ошибку. Это потому, что вы заканчиваете текущую нить, идя куда-то еще. Просто погуглите номер ошибки, и вы увидите, что можете поймать эту ошибку и игнорировать ее.

1 Ответов

Рейтинг:
2

MadMyche

Боролся с этим несколько лет назад, получал травму. Исключение ThreadAbort.

Вариант 1 заключается в том, чтобы завернуть его в Try...Catch блокируйте и игнорируйте его. Вообще я не ловлю исключений и игнорирую, но этот случай особенный

try { Response.Redirect(url); }
catch (ThreadAbortException) {/* no real action performed */}

Вариант 2-разрешить потоку продолжать выполнение после перенаправления, лучше всего сделать перенаправление как последнюю часть процесса. В противном случае это может сказаться на производительности.
Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();