-->

的SharePoint错误:“无法导入Web部件”(SharePoint error: “Canno

2019-07-31 03:57发布

我有,我已经开发了一个网络的一部分,如果我手动安装Web部件它是好的。

然而,当我已经打包的Web部件下面这个网站上的指南中的说明: http://www.theartofsharepoint.com/2007/05/how-to-build-solution-pack-wsp.html

我得到的日志文件中此错误:

09/23/2008 14:13:03.67  w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       8l4d    Monitorable Error importing WebPart. Cannot import Project Filter.   
09/23/2008 14:13:03.67  w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       89ku    High        Failed to add webpart http%253A%252F%252Fuk64p12%252FPWA%252F%255Fcatalogs%252Fwp%252FProjectFilter%252Ewebpart;Project%2520Filter.  Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import Project Filter.     at Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, Uri webPartPageUri, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(...  
09/23/2008 14:13:03.67* w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       89ku    High        ...String eventArgument)     

相关的位是:

http%253A%252F%252Fuk64p12%252FPWA%252F%255Fcatalogs%252Fwp%252FProjectFilter%252Ewebpart;Project%2520Filter.
Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import Project Filter.
at Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections)
at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, Uri webPartPageUri, SPWeb spWeb)
at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, SPWeb spWeb)
at Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)

这就是伴随着一个相当简洁的错误消息:“无法导入Web部件”。

我已经检查过我的.dll文件注册为安全的,它是在GAC,该功能被激活,并且Web部件出现在了所有正确的属性显示该网页组件文件被成功读取的Web部件库。

一切似乎都在地方,但我得到这个错误和一点解释从如何解决它的SharePoint。

任何寻找解决方案的帮助表示赞赏。

Answer 1:

弄清楚了。

该错误消息是从.webpart文件中的一个:

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <!--
      The following Guid is used as a reference to the web part class, 
      and it will be automatically replaced with actual type name at deployment time.
      -->
      <type name="7F8C4D34-6311-4f22-87B4-A221FA8735BA" />
      <importErrorMessage>Cannot import Project Filter.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="Title" type="string">Project Filter</property>
        <property name="Description" type="string">Provides a list of Projects that can be used to Filter other Web Parts.</property>
      </properties>
    </data>
  </webPart>
</webParts>

问题是,原来的.webpart文件是一个32位系统中安装Visual Studio扩展了WSS上创建的。

然而,由于我现在在64位机VSeWSS的是不可用的,我相信结果在上述GUID,因为我不使用这些部署工具不被取代。

与全类型名的作品更换GUID。

所以,如果你从你的importErrorMessage节点遇到的错误信息,然后检查在.webpart文件的类型节点看起来更像这个(例如无关):

<type name="TitleWP.TitleWP, TitleWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" />

这是格式:类,命名空间,版本,区域性,公钥

你可以抓住,很容易与您的SharePoint实例相关联的web.config文件,因为这将是在安全控件列表。



Answer 2:

我们有同样的问题,发现我们的Web部件的构造是由WebPartImporter和我们正在做SPSecurity.RunWithElevatedPrivileges构造方法中调用。

出于某种原因,WebPartImporter不能处理这个问题。 所以,我们干脆搬到我们的代码出了构造函数OnInit的(它真正属于)的,一切都很好。



Answer 3:

所有伟大的建议。 我的问题是独特的和愚蠢:我已经部署的解决方案,第一Web应用程序而不是第二。 但是仍然的SharePoint让我激活第二个Web应用程序的网站集的功能(不知道为什么)。 这意味着第二个Web应用程序没有在这个Web.config文件安全控制项(和我是愚蠢校第一Web.config文件)。

所以,仔细检查你正在寻找正确的Web应用程序/ web.config中。



Answer 4:

现在,我得到了如下类似的问题的答案:

当我尝试添加了一个新的WEP一部分页面,然后SHAREPOINT告诉我一个错误信息,告诉我 - 无法导入我的网络的一部分,此错误消息在.webpart文件中定义。

所以我试图在页面中添加一些ohter Web部件,一个奇怪的quesiton外观,其​​中一些可以增加,其中一些不能添加。

之后我跟踪我的网络部分的代码和anaylsis他们,我找到了原因:

旧代码的Web部件ProjectInfo(我的网络部分名称)是:

namespace ProjectInfo
....
 public class ProjectInfo:System.Web.UI.WebControls.WebParts.Web.part
 {
        .....
        private SPWeb _spWeb;
        private SPList _spList;
        private string _listName = "ProjectDocs";
        ......
 }
public ProjectInfo()
 {
        .....
            _spWeb = SPContext.Current.Web;
            //It show me a error here when i trace the code
            _spList = _spWeb.Lists[_listName]; 
        .....
 }

现在停下来,我认为这也许该网页初始化顺序问题。 AS网页加载Web部件的控制,constructrue功能ProjectInfo()将首先运行。 实际上,网页没有带完成它的init。 到...的时候。

所以我做了一个测试。 首先,我把一个好的网站页面,它的确定。 然后,我尝试把Web部件中不能被刚才添加的页面。 ~~ OK! 它的工作...因为页面已经初始化。 完了。

好! 我纠正我的代码:

   namespace ProjectInfo
    ....
     public class ProjectInfo:System.Web.UI.WebControls.WebParts.Web.part
     {
            .....
            private SPWeb _spWeb;
            private SPList _spList;
            private string _listName = "ProjectDocs";
            ......
     }
    public ProjectInfo()
     {
            .....
                //Remove code in constructure function.
                //_spWeb = SPContext.Current.Web;
                //It show me a error here when i trace the code
                //_spList = _spWeb.Lists[_listName]; 
            .....
     }

   protected override void CreateChildControls()
        {
         ....
           base.CreateChildControls();

            _spWeb = SPContext.Current.Web;
            _spList = _spWeb.Lists[_listName];
          ....
         }

我测试后,该错误信息再次我以前不..发梗英雄联盟~~

希望这个解释会帮助你。



Answer 5:

我已经看到了这种不正常现象了几次都没有一个很好的解决方案。

检查您的大会,命名空间,类名是正确的无处不在。 这已经挂了我不止一次。

请确保您有一个有效的SafeControls项。

确保您的.webpart文件是有效的(让我们的SharePoint为您创建它,如果你能)

如果你是绝对正面的一切是正确的,那么,你是停留在我已经有好几次的地方。 我能想出的唯一的事情就是VS正在编制的装配错误。 我发现的唯一的解决方法是创建一个新的VS项目,并设置它怎么需要,那么你的旧CS文件的文本复制到新的CS文件...不要复制文件本身...目标是有耳目一新。

这为我工作。 祝好运。



Answer 6:

你有你的回收工作进程或重置IIS?



Answer 7:

解决了我的。

我是收到此错误:

===========================================================================
Error importing WebPart. Cannot import ........ Web Part.
Failed to add webpart 
Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import ... Web Part.     at Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, Uri webPartPageUri, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)   
===========================================================================

“无法导入的WebPart ......”

问题是:非匹配GUIDS

检查对WebPart类的全局唯一标识符,并在.XML和.webpart类相同。

我是从其他的webpart来源的复制粘贴代码。 (在Codeplex复式文献上传Wepart)和忘记固定的GUID。



Answer 8:

我也遇到过这个错误时,我的Web部件引用在GAC大会,是由不同的强名称密钥文件签署我所期待的。 决定更新这些DLL时,我发现了这一点。 当将其插入到GAC我注意到,有对同一个DLL 2项,但他们有不同的公共密钥令牌



Answer 9:

当我创建了一个基类的Web部件,然后继承派生类从中我得到这个错误。 基类是罚款,但是当我试图把它与同样的错误原来的职位添加到网页中的派生类中失败。 在我而言,我不得不公共修饰符添加到类:

public class DerivedWebPart : BaseWebPart

此外,我在派生类中增加了一个构造函数调用基类中的一个 - 虽然我觉得你不应该需要这个真:

    public DerivedWebPart() : base()
    {
    }


Answer 10:

我有非常相似,这是一个问题,但的GUID不是问题:我的WebPart没有足够的CLSCompliannt属性设置为false。 像这样:

namespace MyNamespace
{

    [CLSCompliant(false)]
    [Guid("...")]
    public class MyWidget : MyWebPartBaseClass
    {

    }
}


Answer 11:

我发现,我的没有进口的第一次,但如果我点击“新建”,并补充它,它会工作。

从那里,我抓住了XML的副本,并将其保存到我的项目。 Web部件的工作之后大。

我只花几天才能得到这一点。 浪费了不少时间。



文章来源: SharePoint error: “Cannot import Web Part”