我创建了一个包含4个Web部件的功能。该功能在我的开发环境中运行良好,因此我尝试将其移至生产环境。我毫无意外地添加和部署了该功能,并且可以将4个Web部件中的2个添加到页面中。另外2个产生以下错误:
无法添加选定的网页部分。 (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个正在工作而其他部件不工作。任何帮助将不胜感激!
答案 0 :(得分:4)
我刚遇到同样的问题,但我的解决方案有点不同。在处理Web部件之前,我已经重构了命名空间,但没有更新任何配置。正如上面的另一个答案中所提到的,我更新了WebPart XML文件,但是没有做到这一点。
WebPart上有一个名为安全控制条目的属性,如下图所示:
您必须编辑Safe Control Entries集合并更新第一个条目中的命名空间。更新后,Sharepoint不应该再抱怨了。
答案 1 :(得分:2)
两个使用其他控件或库失败了吗?必须将引用和呈现的任何UI控件添加到安全控件中。如果您使用的第三方DLL未正确打包或使用未标记为安全的控件,那么您将看到此问题。
尝试查看webpart XML并确保引用正确的DLL(如果您重构类/命名空间但不编辑webpart以匹配,则可能会失去同步)。在这种情况下,你的webpart仍会显示在库中(毕竟它只是XML;没有问题)但是由于webpart尝试引用未注册的DLL(并且可能没有注册),因此尝试使用它会引发此错误存在)。如果这是您应该停用该功能的问题,请确保从库中删除webpart,然后部署更改并重新激活。您可以从浏览器中查看webpart XML,以查看它是否已更新/更正。