一. 目标
假设添加 .jsonp后缀名,让该后缀名文件和aspx页面一样被解析
二. 实现步骤
1. 让IIS辨认文件扩展名
1) 方法一:修改Web.config,在configuration->system.webServer标签下加入
<staticContent>
<mimeMap fileExtension=".jsonp" mimeType="application/javascript" />
</staticContent>
2) 方法二:在IIS管理器中打开"MIME类型",查看有没有.jsonp扩展名,如果没有,添加.jsonp扩展名。MIME类型中设置以后,现在可以通过浏览器访问到.jsonp扩展名的文件了,但是只是作为静态页面获取,文件中的asp代码不会被解析。
2. 增加BuildProvider
在Web.config中configuration->system.web->compilation标签下增加
<buildProviders>
<add extension=".jsonp" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
3. 增加处理程序映射
1) 方法一:在Web.config中configuration->system.webServer标签下增加
<handlers>
<add name="JsonpAsp-Integrated-4.0" path="*.jsonp" verb="*"
type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified"
preCondition="integratedMode" />
</handlers>
2) 方法二:在IIS管理器中打开“处理程序映射”功能,运行“添加托管处理程序”,请求路径中输入*.jsonp,类型中输入System.Web.UI.PageHandlerFactory,名称自己定。
做完以上3步就可以实现非aspx扩展名也可以按asp页面进行解析了。
PS. 页面代码中如果不包含Html标签对页面编码进行说明,可能会有乱码问题,可以通过设置进行处理:在Web.config中configuration->system.web标签下添加配置
<globalization fileEncoding="utf-8" />