我们遇到IIS5服务器问题。
当某些用户/浏览器点击下载.zip文件时,二进制乱码文本有时会在浏览器窗口中呈现。所需的行为是使用相关的zip应用程序下载或打开文件。
最初,我们怀疑文件上设置了错误的内容类型标头。 IIS技术人员证实,IIS使用mime类型“application / x-zip-compressed”来提供.zip文件。
但是,使用Wireshark检查HTTP数据包会发现对zip文件的请求会返回两个 Content-Type标头。
知道IIS发送两个内容类型标头的原因吗?常规HTML或图像文件不会发生这种情况。它确实发生在ZIP和PDF上。
我们有什么特别的地方可以让IIS技术人员看看吗?或者我们可以检查一个配置文件吗?
答案 0 :(得分:0)
我相信 - 我可能错了,http 1.1标头发送多个标头定义,最具体的优先级。
所以在你的例子中,它发送2个text / html然后是application / x-zip-commercial,所以第二个将是最具体的 - 如果不能在客户端上处理,那么使用更普遍的一个(在这种情况下的第一个) -
我已经阅读了这篇http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,并指出了你所说的内容 - 不确定这是否真的发生了。
当然,我可能完全错了
答案 1 :(得分:0)
确保您没有设置任何ISAPI筛选器或ASP.net HTTP模块来重写标头。如果他们不检查标题是否已存在,则将附加而不是替换。我们之前遇到过一个问题,内部认证模块没有正确更新标题,因此我们获得了两个授权标题,一个来自IIS,另一个来自我们的模块。
答案 2 :(得分:0)
服务器上安装了哪些软件来处理.zip文件? 它looks like IIS从注册表中获取MIME翻译,也许您使用的zip软件已经注册了MIME类型。这并不能解释为什么IIS会响应两个内容类型的头文件,因此任何ISAPI过滤器和其他Mime-table都是可疑的。
答案 3 :(得分:0)
这可能与此knowledge base article.有关。这表明IIS可能正在压缩已经压缩的文件,但有些浏览器只是直接转到辅助应用程序,为您提供错误的数据(因为它已被压缩两次) 。如果您将zip扩展名的mime类型更改为 application / octet-stream ,则可能不会发生这种情况。
答案 4 :(得分:0)
听起来您的IIS配置可能存在问题。但是,如果是这种情况,则无法从您的帖子中判断出来。
您可以在IIS上的多个级别上配置mime类型。我的IIS 5知识有点生疏,据我所知,这种行为对于IIS 6是相同的。我试图在IIS 6环境中模拟这个,但是根据接受的标题只接收了一个mime类型
我已经将网站上的zip文件的标题设置为application / x-zip-compressed,对于我明确指定的文件,将其设置为
tinyget -srv:dev.24.com -uri:/helloworld.zip -tbLoadSecurity
WWWConnect::Connect("server.domain.com","80")
IP = "127.0.0.1:80"
source port: 1581
REQUEST: **************
GET /helloworld.zip HTTP/1.1
Host: server.domain.com
Accept: */*
RESPONSE: **************
HTTP/1.1 200 OK
Content-Length: 155
Content-Type: text/html
Last-Modified: Wed, 29 Apr 2009 08:43:10 GMT
Accept-Ranges: bytes
ETag: "747da786a6c8c91:0"
Server: Microsoft-IIS/6.0
Date: Wed, 29 Apr 2009 10:47:10 GMT
PK??
? ? ? helloworld.txthello worldPK??¶
? ? ? ? helloworld.txtPK?? ? ? < 7 ? hello world sample
WWWConnect::Close("server.domain.com","80")
closed source port: 1581
但是我不觉得这证明了很多。但它提出了一些问题:
答案 5 :(得分:0)
我遇到过类似的问题。我正在测试IIS 6上的下载,但无法弄清楚为什么名为test.zip的压缩文件在IE8中显示为文本(在其他浏览器中可以下载)。
然后我意识到,为了测试,我压缩了一个非常小的文本文件。我的猜测是IE浏览了文件,看到了文本(因为体积小而几乎没有压缩)并且认为它是纯文本。
我再次尝试使用更大的文件,IE8中的下载提示显示正常。
可能与您的案件无关,但我想我会提到它。
添