重构原来的网站,Ajax实现用的是AjaxPro2,改成Asp.Net MVC3。发现AjaxPro无法正常使用,原来的代码运行在JS调试中出现XXX未定义。
好一番折腾,排除了web.config配置错误,所引用ajaxpro版本不兼容等等问题,最后跟踪调试还是没有找出问题,没办法,找来AjaxPro源代码项目引用跟踪调试。
原网站正常进入断点,MVC新站还是错误。
最后发现是没有忽略ajaxpro所生成ashx的路由。
在Global.asax.cs文件
RegisterRoutes方法
routes.IgnoreRoute("ajaxpro/{*pathInfo}");//忽略掉ajaxpro/相关路由。
解决问题
附
web.config中配置
<system.web>
<httpHandlers>
<add path="ajaxpro/*.ashx" verb="POST,GET"
type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="AjaxPro.AjaxHandlerFactory"
path="ajaxpro/*.ashx" verb="POST,GET"
type="AjaxPro.AjaxHandlerFactory" resourceType="Unspecified"
preCondition="integratedMode" />
</handlers>
</system.webServer>
本文介绍了一位开发者在将原有网站从AjaxPro2迁移到ASP.NET MVC3过程中遇到的问题及解决方案。主要问题是原有的AjaxPro无法正常工作,并在JavaScript调试中报错。通过一系列排查和调试,最终发现在ASP.NET MVC3中需要正确配置路由以忽略AjaxPro生成的ashx文件。
785

被折叠的 条评论
为什么被折叠?



