OutputCache造成页面响应内容类型为text/vnd.wap.wml的问题
这段时间,访问博客园首页有时会出现text/vnd.wap.wml文件下载的对话框,如下图:

出现这个问题后,等1分钟左右或者回收应用程序池就恢复正常。开始以为是IIS 7的问题,不知道从何处下手去找出原因。
今天终于在iis.net的论坛中找到了原因:Prevent automatic content type switching to text/vnd.wap.wml of *.aspx files。
问题是在下面的情况下出现的: 博客园首页使用了ASP.NET的页面缓存:
当某个只能接受text/vnd.wap.wml内容类型的客户端在缓存过期时访问博客园首页,ASP.NET会建立响应内容类型为text/vnd.wap.wml的缓存,这时正常浏览器访问得到的就是text/vnd.wap.wml响应内容,于是出现文件下载对话框,当这个缓存过期后就恢复正常。
在iis.net的帖子中提到的一种解决方法是在OutputCache中增加VaryByHeader="Content-Type",示例代码如下:

出现这个问题后,等1分钟左右或者回收应用程序池就恢复正常。开始以为是IIS 7的问题,不知道从何处下手去找出原因。
今天终于在iis.net的论坛中找到了原因:Prevent automatic content type switching to text/vnd.wap.wml of *.aspx files。
问题是在下面的情况下出现的: 博客园首页使用了ASP.NET的页面缓存:
<%@ OutputCache Duration="60" VaryByParam="*" VaryByCustom="FullUrl" %>
当某个只能接受text/vnd.wap.wml内容类型的客户端在缓存过期时访问博客园首页,ASP.NET会建立响应内容类型为text/vnd.wap.wml的缓存,这时正常浏览器访问得到的就是text/vnd.wap.wml响应内容,于是出现文件下载对话框,当这个缓存过期后就恢复正常。
在iis.net的帖子中提到的一种解决方法是在OutputCache中增加VaryByHeader="Content-Type",示例代码如下:
<%@ OutputCache Duration="360" VaryByParam="none" Location="Any" VaryByHeader="Content-Type"%>
上一篇:ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
下一篇:《高性能的数据库》第一讲:范式设计
全部评论:
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“
OutputCache造成页面响应内容类型为text/vnd.wap.wml的问题
”的原作者,若侵犯您的版权,请与我联系!在此请您原谅我的幼稚和无知!联系方法:email:ahuinan@21cn.com QQ:106494262
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
文章档案
- 作者:dudu
- 来源:博客园
- 日期:2010-2-7 21:32:00
- 点击:351
网友投票(您觉得这篇文章怎样?)
请稍侯......
请稍侯......
文章阅读排行
随便看看
最新评论
- 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 站长 好!
- 网站不错<br>不知道URl是用什么生成的?
- update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 恭喜站长改进 支持
- 改版了? 牛叉
- 网站不错^-^ 多多向站长学习
- 212
- 啊 是