无法加载类型“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