Sharepoint 将自定义web部件添加到页面:未注册为安全

Sharepoint 将自定义web部件添加到页面:未注册为安全,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,我创建了一个包含4个web部件的功能。这个特性在我的开发环境中运行得非常好,所以我正在尝试将它转移到生产环境中。我添加并部署了该功能,没有任何意外,4个web部件中的2个可以添加到页面中。另外2个会产生以下错误: 无法添加选定的web部件。 (Web部件名称):无法显示或导入此页面上的Web部件或Web表单控件。找不到该类型或该类型未注册为安全类型 这些web部件非常相似,它们包含文本框、下拉列表和人物编辑器,没有什么特别之处。所有4个都显示在web部件库中。我的web.config中有以下条目

我创建了一个包含4个web部件的功能。这个特性在我的开发环境中运行得非常好,所以我正在尝试将它转移到生产环境中。我添加并部署了该功能,没有任何意外,4个web部件中的2个可以添加到页面中。另外2个会产生以下错误:

无法添加选定的web部件。 (Web部件名称):无法显示或导入此页面上的Web部件或Web表单控件。找不到该类型或该类型未注册为安全类型

这些web部件非常相似,它们包含文本框、下拉列表和人物编辑器,没有什么特别之处。所有4个都显示在web部件库中。我的web.config中有以下条目:

<SafeControl Assembly="xxx_WebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=274c568f7ef9ca81" Namespace="xxx_WebPart.UI.WebControls.WebParts" TypeName="*" Safe="True" />


我一直在搜索这个错误,但大多数点击似乎指向我的web.config条目。我很困惑,为什么4个web部件中有2个工作,而其他的不工作。任何帮助都将不胜感激

这两个控件使用其他控件或库失败了吗?任何引用和呈现的UI控件都必须添加到安全控件中。如果您正在使用未正确打包的第三方DLL,或者正在使用未标记为安全的控件,那么您将看到此问题


尝试查看Web部件XML,并确保引用了正确的DLL(如果重构类/命名空间,但不编辑Web部件以匹配,则可能会失去同步)。在这种情况下,您的Web部件仍将显示在库中(毕竟它只是XML,没有问题),但尝试使用它会抛出此错误,因为Web部件尝试引用未注册(可能不存在)的DLL。如果这是您应该停用该功能的问题,请确保该Web部件已从库中删除,然后部署更改并重新激活。您可以从浏览器查看Web部件XML,以查看它是否已被更新/更正。

我刚刚遇到了相同的问题,但我的解决方案有点不同。在处理web部件之前,我已经重构了名称空间,但没有更新任何配置。正如上面的另一个答案中提到的,我更新了WebPartXML文件,但这并没有起作用

Web部件上有一个名为“安全控制条目”的属性,如下图所示:


您必须编辑Safe-Control-Entries集合,并在第一个条目中更新名称空间。更新后,Sharepoint不应该再抱怨了。

啊,可能就是这样。我已经检查了web部件XML,但我想我没有仔细查看。我在某个时候更改了代码文件的名称,它仍然引用web部件XML中的旧名称。我刚刚重新部署,虽然它仍然不起作用,但我猜我可能需要一个iisreset,而我目前无法做到。非常感谢!您的Web部件很可能仍在库中,除非您有一些功能取消激活的代码将其删除。在这种情况下,未更新损坏的Web部件。只需进入gallery并删除它们,然后重新激活该功能。或者查看他们的XML,看看是否没有正确更新。我现在不在我的开发工作站前面,但如果使用了功能接收器,我相信dll在feature.xml或elements.xml中以字符串格式列出(因此在重构操作中看不到)。也看看这些。就是这样,一旦我删除了它们并重新激活了该功能,就可以继续了。谢谢