当我使用ASP.NET传输文件时,为什么IIS7会忽略我的内容类型标头?
发布时间:2020-12-16 07:38:54 所属栏目:asp.Net 来源:网络整理
导读:我有一个有两页的简单网站.一个显示文件列表,另一个文件在列表中单击时流式传输.生产6个月都很好,但现在我必须将网站移动到 Windows 2008 / IIS7.我有它主要工作,但文件无法正常打开(在Firefox中)因为我的内容类型标题被忽略.在生产站点(IIS6)上,标题是(使用
我有一个有两页的简单网站.一个显示文件列表,另一个文件在列表中单击时流式传输.生产6个月都很好,但现在我必须将网站移动到
Windows 2008 / IIS7.我有它主要工作,但文件无法正常打开(在Firefox中)因为我的内容类型标题被忽略.在生产站点(IIS6)上,标题是(使用Fiddler):
HTTP/1.1 200 OK Date: Tue,09 Feb 2010 16:00:51 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Content-Disposition: attachment; filename="myfile__foo.pdf" Content-Length: 236841 Cache-Control: no-cache,no-store Pragma: no-cache Expires: -1 Content-Type: application/octet-stream 但在测试IIS7服务器上我得到: HTTP/1.1 200 OK Cache-Control: private Content-Length: 236841 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 Content-Disposition: attachment; filename="myfile__foo.pdf" Fiddler还报告违反协议并说“内容长度不匹配:响应标头声称236841字节,但服务器发送了238378字节.” 我的代码看起来像这样: Response.Clear(); Response.AddHeader("Content-Disposition","attachment; filename="" + doc.DisplayFilename + "." + doc.FileExtension + """); Response.AddHeader("Content-Length",file.Length.ToString()); Response.ContentType = "application/octet-stream"; Response.TransmitFile(file.FullName); Response.End(); 我一直试图解决这个问题几天.我对IIS7并不熟悉,并且很难找到改变各种设置的位置.我确实设法弄清了两种管理流水线模式,并通过切换到Classic .NET AppPool修复了一些其他问题(Integrated在传输文件时抛出了各种错误). 有没有办法告诉IIS7不要覆盖我的ContentType标头,如果这是发生了什么? 解决方法
您没有HttpModules修改请求/响应? web.config文件是否完全相同?
这些额外的2K字节来自哪里?它们里面有什么? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么开发人员在实现版本控制时如此珍贵地发布API?
- asp.net-core – ASP.NET Core忽略ASPNET_ENV和Hosting:En
- asp.net – 如何使用Forms身份验证保留默认页面?
- asp.net-mvc-3 – 如何使用MVC中的存储库模式创建动态的多个
- Asp.net SignalR 应用并实现群聊功能 开源代码
- asp.net – @ Html.EditorForModel()下拉列表
- 如何让ASP.NET Web API的Action方法在希望的Culture下执行
- asp.net-web-api – 如何只获取没有值的Odata.Count
- asp.net-mvc – 将布尔属性编辑器转换为MVC视图中的下拉列表
- asp.net – 带有WebAPI的Fiddler表现得很不稳定
推荐文章
站长推荐
- asp.net – 将AJAX ModalPopupExtender定位在屏幕
- 扩展UltraGrid控件实现对所有数据行的全选功能[S
- asp.net-mvc-3 – 使用ASP.NET MVC3 Razor进行字
- 您可以为标准ASP.NET Web窗体验证器定制客户端Ja
- asp.net-mvc – 如何使用存储库模式处理表关系?
- asp.net – 引用不稳定的DLL
- asp.net-mvc – 访问OAuth中的电子邮件地址Exter
- asp.net-mvc-3 – Razor reseverd words
- 可以在asp.net c#中将web.config键值对用作编译时
- ASP.NET Core 2.0 Razor vs Angular/React/etc.
热点阅读