当前位置:编程学习 > wap >>

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的页面缓存:

 

  <%@ OutputCache Duration="60" VaryByParam="*" VaryByCustom="FullUrl" %>

 

  当某个只能接受text/vnd.wap.wml内容类型的客户端在缓存过期时访问博客园首页,ASP.NET会建立响应内容类型为text/vnd.wap.wml的缓存,这时正常浏览器访问得到的就是text/vnd.wap.wml响应内容,于是出现文件下载对话框,当这个缓存过期后就恢复正常。

  下面我们用测试代码重现这个问题。

  测试页面文件为http://www.zzzyk.com /wap_test_1.aspx,代码如下:

 

<%@ OutputCache Duration="360" VaryByParam="none" Location="Any"%>

<html>
<head><title>Test</title></head>
<body>
<p>Hello World</p>
</body>
</html>

  通过一个控制台程序模拟只接受text/vnd.wap.wml内容类型的客户端,代码如下:

using System;
using System.IO;
using System.Net;

class Program
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,