Telerik控件无法用ASP正确呈现.集成的应用程序池
本文关键字:集成 应用 程序池 应用程序 控件 ASP Telerik | 更新日期: 2023-09-27 18:17:33
我们有一个使用几个teleerik控件的web表单。当我切换到ASP.NET v4.0 Classic
时,控件被正确呈现。当我切换到ASP.NET v4.0 Integrated
时,控件不会呈现。我想这和权限有关。
不幸的是,它需要保持为ASP.NET v4.0 Integrated
,那么我需要做些什么才能使控件正确呈现?
问题是Telerik.Web.UI.WebResource.axd
处理程序(在system.webServer
)在web.config:
preCondition="integratedMode,runtimeVersionv2.0
注册不正确。而不是:
<system.webServer>
<handlers>
<remove name="ChartImage_axd"/>
<add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/>
<remove name="Telerik_Web_UI_SpellCheckHandler_axd"/>
<add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/>
<remove name="Telerik_Web_UI_DialogHandler_aspx"/>
<add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/>
<remove name="Telerik_RadUploadProgressHandler_ashx"/>
<add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/>
<remove name="Telerik_Web_UI_WebResource_axd"/>
<add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/>
</handlers>
</system.webServer>
应该没有runtimeVersionv2.0
:
<system.webServer>
<handlers>
<remove name="ChartImage_axd"/>
<add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode"/>
<remove name="Telerik_Web_UI_SpellCheckHandler_axd"/>
<add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode"/>
<remove name="Telerik_Web_UI_DialogHandler_aspx"/>
<add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode"/>
<remove name="Telerik_RadUploadProgressHandler_ashx"/>
<add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode"/>
<remove name="Telerik_Web_UI_WebResource_axd"/>
<add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode"/>
</handlers>
</system.webServer>
另一个注意事项(至少对我来说),如果应用程序在asp.net v4.0 Classic
下运行,则使用<httpHandlers>
部分(在<system.web>
下)。如果使用asp.net v4.0 Integrated
,则使用<handlers>
(在<system.webServer>
下)
可能是web中的HTTP句柄。配置没有正确注册,较新的IIS版本和模式从系统中读取它们。webServer部分:http://www.telerik.com/help/aspnet-ajax/introduction-registering-the-httphandlers-on-windows-vista-iis-7-integrated-mode.html.
如果不是这种情况,请确保没有脚本错误。在我的脑海里,有几个原因:
你是在。net 4下使用IE10/11,所以你会得到MS AJAX脚本错误:http://blogs.telerik.com/aspnet-ajax/posts/13-12-19/how-to-get-your-asp.net-application-working-in-ie11.
由于某些原因导致web资源失败:http://www.telerik.com/help/aspnet-ajax/introduction-web-resources-troubleshooting.html。尝试CDN提供的脚本或皮肤,这取决于什么破坏,如果你不能修复它(假设这是原因)。
查看应用程序池用户是否有权限访问和修改您的站点所在的文件夹(这是在Windows中完成的,而不是在您的项目中)。确保它至少有修改权限