在 IIS6 下提供下载并在 ASP.NET 开发服务器下工作,但不在 IIS7/8 下工作

Serving a download worked under IIS6 and is working under ASP.NET Dev server, but not under IIS7/8

我正在查看的页面提供生成的 PDF 文件:

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()

提供下载的link按钮所在的主页有以下第一行:

<%@ Master Language="VB" AutoEventWireup="false" Inherits="App.WebGui.Nav" CodeBehind="Nav.master.vb" %>
<% Response.CacheControl = "no-cache"%>
<% Response.AddHeader("Pragma", "no-cache")%>

3d线导致异常:

Server cannot append header after HTTP headers have been sent.

在 ASP.NET 开发服务器内置的 VS 2010 或旧 IIS6 运行 中调试时没有异常。

需要做哪些更改才能在 IIS7 中运行?

是否可以通过编程方式确定 headers 已经发送并在这种情况下有条件地跳过 3d 行?

在应用程序池上将管道模式从 Integrated 更改为 Classic 并回收了该池。没有更多的错误。