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

然而,当我们打包的网络的一部分下说明在该网站上作为指南: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)

这就是伴随一个相当简短的错误信息:"无法进口网络的一部分"。

我已经检查了我的.dll注册为安全,这是在咨询委员会的特点是激活、以及网络的零件出现在网络的一部分图书馆的所有正确的性质,显示该网站的文件的读取得成功。

一切似乎是在地方,但我得到这一错误和解释从SharePoint如何解决这个问题。

任何帮助找到一个解决方案表示赞赏。

有帮助吗?

解决方案

想出来。

错误消息是.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文件是在安装了Visual Studio Extensions for WSS的32位系统上创建的。

然而,由于我现在使用的是64位计算机VSEWSS不可用,并且我认为导致上述GUID没有被替换,因为我没有使用这些部署工具。

使用完整类型名称替换GUID。

因此,如果您遇到importErrorMessage节点的错误消息,请检查.webpart文件中的类型节点是否更像这样(不相关的示例):

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

格式如下: 类,命名空间,版本,文化,PublicKey

您可以从与SharePoint实例关联的web.config文件中轻松获取该文件,因为它将位于安全控件列表中。

其他提示

我们遇到了同样的问题,发现Web部件的构造函数是由WebPartImporter调用的,在构造函数中我们正在执行SPSecurity.RunWithElevatedPrivileges。

由于某种原因,WebPartImporter无法处理此问题。所以,我们只是将我们的代码从构造函数移到OnInit(它真正属于的地方),一切都很好。

所有伟大的建议。我的问题是独特的,愚蠢的:我部署了解决第一个网络应用程序而不是二个。SharePoint然而仍然允许我激活该功能上的第二个网络应用程序的网站集中(不知道为什么)。这意味着第二个网络应用程序,没有一个安全控制进入在这个网页。配置文件(我很愚蠢地检查第一个网络。config).

所以,仔细检查,你看着正确的网络应用程序/网络。config。

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

当我尝试向页面添加新的wep部件时,sharepoint会显示一条错误消息,告诉我 - 无法导入我的Web部件,此错误消息在.webpart文件中定义。

所以我试着在页面中添加一些更好的网页部件,一个奇怪的问题外观,其中一些可以添加,其中一些不能添加。

在我追踪我的网络部分代码并分析它们之后,我找到了原因:

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

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部件控件,构造函数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()
     {
            .....
                //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];
          ....
         }

我测试后,错误消息没有再次发生..   LoL ~~

希望这个解释对你有帮助。

在没有良好分辨率的情况下,我已经多次看到这种异常现象。

检查您的程序集,命名空间,类名是否正确无论如何。这让我不止一次。

确保您拥有有效的SafeControls条目。

确保您的.webpart文件有效(如果可以,让SharePoint为您创建)

如果你绝对肯定一切都是正确的,那么你就会被困在我已经好几次的地方。我能想到的唯一一件事就是VS正在编译程序集错误。我找到的唯一修复是创建一个新的VS项目并根据需要进行设置,然后将旧CS文件的文本复制到新的CS文件中...不要自己复制文件...目标是让一切都新鲜。

这对我有用。祝你好运。

您是否已回收工作进程或重置IIS?

解决了我的问题。

我收到了这个错误:

===========================================================================
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类中的guid是否相同。

我是从其他webparts源代码复制粘贴代码。 (Mutliple文件上传Wepart on Codeplex)并忘记修复guids。

当我的Web部件引用的GAC中的程序集由不同的强名称密钥文件签署到我期望的内容时,我也遇到了此错误。 我在决定更新这些DLL时发现了这一点。当它插入GAC时,我注意到同一个DLL有2个条目,但它们有不同的公钥标记

当我创建基类Web部件然后从中继承派生类时,我遇到了这个错误。基类很好,但是当我尝试将其添加到与原始帖子具有相同错误的网页时,派生类失败了。在我的情况下,我必须在类中添加 public 修饰符:

public class DerivedWebPart : BaseWebPart

此外,我在派生类中添加了一个构造函数来调用基类 - 虽然我认为你不应该真的需要它:

    public DerivedWebPart() : base()
    {
    }

我有一个与此非常相似的问题,但Guids不是问题:我的webpart没有将 CLSCompliannt 属性设置为false。像这样:

namespace MyNamespace
{

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

    }
}

我发现我的第一次没有导入,但是如果我点击“新建”并添加它,它就会起作用。

从那里我抓起了一份XML并将其保存到我的项目中。之后网络部分运作良好。

我只花了DAYS来达到这一点。浪费了很多时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top