我已经将我的asp.net 3.5应用程序移动到asp.net 4.0并从Windows 2003(iis6)移动到Windows 2008 r2(iis7.5),现在我有这个sys是未定义的错误.
我让应用程序在集成的应用程序池中运行.一切都有效,除了我的ajaxtoolkit 3.0.20820.0 dll
现在我已经阅读了几篇博客文章,其中大多数都涵盖了asp.net 2.0 web.config文件,而不是最小化的asp.net 4.0配置文件.
这是我当前配置文件中的一些部分:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <validation validateIntegratedModeConfiguration="false"/> <handlers> <add name="AjaxToolkit" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" /> <add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,System.Web.DataVisualization,Version=4.0.0.0,PublicKeyToken=31bf3856ad364e35" /> </handlers>
另一部分:
<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31bf3856ad364e35"/> <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/> <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,PublicKeyToken=31bf3856ad364e35" validate="false" /> </httpHandlers>
没有太多信息可用于asp.net 4.0和ajaxtoolkit http处理程序问题,所以我希望一些大师@ stackoverflow可以帮助我:)
编辑:
因为我有这个愚蠢的sys未定义的东西,我的global.asax给出了这个on_Error:
Error Message: This is an invalid script resource request. Stack Trace: at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context) at System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
它位于scriptresource.axd文件中:S
Edit2:奇怪的是我的本地web.config在web.config中没有任何处理程序的东西,它在开发webserver casini上运行
编辑3:人们说Adrian在这里有解决方案:
http://budigelli.wordpress.com/2007/05/01/error-sys-is-undefined-error/
但我不能让它在IIS7上工作
编辑4:我读过IIS7在Handler映射中有通配符映射的地方
我已经看到在.axd映射之上的de sorted list中有一个无扩展的通配符映射.但现在我仍然不知道如何配置IIS7中的映射来支持Ajaxtoolkit!
解决方法
对于IIS 7和IIS 7.5上的asp.net 4.0,将其添加到web.config:
<system.webServer> <handlers> <add name="ScriptResource" preCondition="integratedMode" verb="GET,PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer>
更新:我已将版本更改为ASP.NET 4.0的正确版本