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

时间:2016-03-23 19:36:06

标签: vb.net asp.net-2.0

我正在查看的页面提供生成的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()

服务于下载的链接按钮所在的母版页具有以下第一行:

<%@ 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 Dev服务器的VS 2010中进行调试或在旧的IIS6中运行时,没有例外。

在IIS7中需要进行哪些更改?

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

1 个答案:

答案 0 :(得分:0)

将应用程序池上的管道模式从Integrated更改为Classic并重新使用池。没有更多的错误。