страницы Я смотрю на служит сгенерированный PDF-файл:сервировки загрузки работала под IIS6 и работает под управлением сервером ASP.NET Dev, но не под IIS7/8
Dim Response As System.Web.HttpResponse = System.Web.HttpContext.Current.Response
Response.Clear()
Response.ClearHeaders()
Response.AddHeader("Content-Type", "binary/octet-stream")
Response.AddHeader("Content-Disposition", "attachment; filename=View.pdf; size = " & pdfBytes.Length.ToString())
Response.Flush()
Response.BinaryWrite(pdfBytes)
Response.Flush()
Response.End()
На главной странице, что ссылка кнопка служит загрузку в имеет следующие первые строки:
<%@ Master Language="VB" AutoEventWireup="false" Inherits="App.WebGui.Nav" CodeBehind="Nav.master.vb" %>
<% Response.CacheControl = "no-cache"%>
<% Response.AddHeader("Pragma", "no-cache")%>
3-я линия вызывает исключение:
Server cannot append header after HTTP headers have been sent.
W отладка в VS 2010, построенная на сервере ASP.NET Dev или работающая в старом IIS6, не является исключением.
Какие изменения необходимы для работы в IIS7?
Можно ли программным образом определить, что заголовки уже отправлены и условно пропускают трехмерную линию в этом случае?
Просто перепишите страницу aspx как обработчик ashx, тогда все заботы о автоматически сгенерированных заголовках исчезнут. –
Переписывание всего не является вариантом: (поскольку это огромное наследие, написанное богом, знает, кто без бюджета для каких-либо улучшений. Мне нужно только исправить эту проблему на IIS7, а не сделать ее идеальной. – ajeh