无法加载类型“AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider”。

Posted

技术标签:

【中文标题】无法加载类型“AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider”。【英文标题】:Could not load type 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider'. 【发布时间】:2012-08-14 21:18:42 【问题描述】:

我尝试使用 htmleditorextender,但出现错误。以下是我的设置

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:TextBox runat="server" ID="textBoxGalleryUrl" CssClass="cstmtxtclr" />
<asp:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" TargetControlID="textBoxGalleryUrl"></asp:HtmlEditorExtender>

我的 web.conf 设置是;

  <configSections>
    <sectionGroup name="system.web">
      <section name="sanitizer"
          requirePermission="false"
          type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, AjaxControlToolkit"/>
    </sectionGroup>
  </configSections>

  <system.web>
    <!--<httpRuntime requestValidationMode="2.0"/>-->
    <compilation debug="true" targetFramework="4.0"/>

    <sanitizer defaultProvider="AntiXssSanitizerProvider">
      <providers>
        <add name="AntiXssSanitizerProvider"
              type="AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider"></add>
      </providers>
    </sanitizer>
  </system.web>

我的 bin 文件夹中有以下 dll;

AntiXSSLibrary.dll
SanitizerProviders.dll
HtmlSanitizationLibrary.dll

但我仍然收到此错误;

Could not load type 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider'.

为什么会出现此错误?

【问题讨论】:

试试 Bertzzie 在***.com/questions/12022493/… 中提供的解决方案。它对我有用。 【参考方案1】:

使用AntiXss作为默认消毒剂是no longer supported,截至2012年6月。从官方公告来看,AntiXss的新版本显然破坏了太多东西。

要将 AjaxControlToolkit 与 HTML Agility Pack 一起使用,您首先需要使用 Nuget (instruction) 安装 pacakge。

然后你可以像这样修改你的web.config 来使用HTML Agility Pack 作为你的消毒剂:

<configuration>
    <configSections>
        <sectionGroup name="system.web">
            <section name="sanitizer" requirePermission="false"
                     type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, AjaxControlToolkit" />
        </sectionGroup>
    </configSections>

    <system.web>
        <sanitizer defaultProvider="HtmlAgilityPackSanitizerProvider">
            <providers>
                <add name="HtmlAgilityPackSanitizerProvider" type="AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider"></add>
            </providers>
        </sanitizer>
      </system.web>
</configuration>

希望这会有所帮助。

【讨论】:

我试过了,但我得到了这个 -> 无法加载文件或程序集 'HtmlAgilityPack, Version=1.4.0.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040) 您是否安装了 Nuget 的 HTML Agility Pack?我确实记得先安装了它,我不需要设置任何东西...... 我正在使用它,但它甚至没有删除 @MikeKingscott【参考方案2】:

必须为所有新版本的 Ajax Control Toolkit 安装HTML Agility Pack。 可惜网上很多答案都是错误的

【讨论】:

【参考方案3】:

在高处和低处搜索了相同的问题要解决,我发现Ajax Control Kit也需要通过Library Package Manager加载......

PM > 安装包 AjaxControlToolkit

这解决了我的问题。

【讨论】:

【参考方案4】:

建议您从这里下载最新的 Html Agility Pack: http://htmlagilitypack.codeplex.com/ 并放入您的 bin 并在您的项目中添加对它的引用。

或者使用安装命令:

PM> 安装包 HtmlAgilityPack

你可以看看这个链接http://nuget.org/packages/HtmlAgilityPack

您不必使用或引用 AntiXSSLibrary,只需使用 HtmlAgilityPackSanitizerProvider,您的错误就会消失

祝你好运

【讨论】:

hsobhy 我如何只使用 htmlagilitypacksanitizerprovider 你能解释一下吗?

以上是关于无法加载类型“AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider”。的主要内容,如果未能解决你的问题,请参考以下文章

AjaxControlToolkit.Properties.Resources.NET4.resources正确嵌入或链接到程序集“

vs2005开发,用vs2010加载后提示 :创建控件时出错<asp:UpdatePanel>控件 未知的服务标记 AspNetPager

AjaxControlToolKit 图像在电子邮件消息中显示为 html 标记

如何使用 AjaxControlToolKit 使 asp:panel 可拖动 w/o

VS2013 蛋疼的“AJAX Control Toolkit”安装过程

ajax悬停菜单扩展器控件的问题