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控件无法用ASP正确呈现.集成的应用程序池

问题是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中完成的,而不是在您的项目中)。确保它至少有修改权限