前段时间把公司的一个用Ext.Net开发的Web系统从Windows Server 2003迁移到了Windows Server 2008下面,然后发现有些功能不能用了。点击后没有内容,一片空白。用开发者工具检查发现http://test.cn/extjs/adapter/ext/ext-base-js/ext.axd?v=36328
这类ext.axd文件找不到,原以为是ext.axd等文件丢失,到开发机上也找不到extjs等文件夹,搜索整个站点文件夹,也找不到ext.axd。看来这些文件是动态生成或者资源重定向了。应该是IIS6下能正常运行的配置在IIS7下出现问题了。
百度Google了半天,Ext.net官网也去过了,都找不到解决办法。还是自立更生吧。解读站点的Web.config配置文件,发现有这么一个说明:
<!–
在 Internet 信息服务 7.0 下运行 ASP.NET AJAX 需要 system.webServer
节。对早期版本的 IIS 来说则不需要此节。
–>
看来是system.webServer下面缺少了某些配置项,导致这个问题。去Ext.net官网下载了带实例的Ext.NET发行包,查看其中的示例配置文件,发现system.webServer有这么两节:
<modules>
<add name="DirectRequestModule" preCondition="managedHandler" type="Ext.Net.DirectRequestModule, Ext.Net" />
</modules><handlers>
<add name="DirectRequestHandler" verb="*" path="*/ext.axd" preCondition="integratedMode" type="Ext.Net.ResourceHandler" />
</handlers>
对照我的配置文件,没有找到这两节,马上添加上去。再去试试那些有问题的功能,正常了。