Как только вы отправляете какой-либо контент клиенту, заголовки HTTP уже отправлены. Вызов Response.Redirect()
работает путем отправки специальной информации в заголовках, которая заставляет браузер запрашивать другой URL.
Поскольку заголовки уже отправлены, asp.net не может делать то, что вы хотите (изменить заголовки)
Вы можете обойти это путем: а) либо выполнить перенаправление, прежде чем делать что-либо еще, либо б) попробовать использовать Response.Buffer = true
, прежде чем делать что-либо еще, чтобы убедиться, что выходные данные не отправляются клиенту до полной страницы выполнено.