Frage

Ich habe einen Web-Teil, das ich entwickelt habe, und wenn ich manuell den Webpart installieren Sie es in Ordnung ist.

Allerdings, wenn ich die Web-Teil nach den Anweisungen auf dieser Website als Leitfaden verpackt haben: http://www.theartofsharepoint.com/2007 /05/how-to-build-solution-pack-wsp.html

Ich erhalte diese Fehler in den Protokolldateien:

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)     

Die zugehörige Bit ist:

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)

Und das ist durch eine ziemlich lapidare Fehlermeldung begleitet: „Kann nicht Webpart importieren“

.

Ich habe überprüft und meine DLL wird als sicher registriert, ist es im GAC, wird die Funktion aktiviert, und die Bahnteile in der Webpart-Bibliothek erscheinen mit all den richtigen Eigenschaften zeigen, dass die webpart Dateien erfolgreich gelesen wurden .

Alles scheint an seinem Platz zu sein, aber ich bekomme, dass Fehler und kleine Erklärung von Sharepoint, wie es zu lösen.

Jede Hilfe, eine Lösung zu finden, wird geschätzt.

War es hilfreich?

Lösung

es herausgefunden.

Die Fehlermeldung ist die von der WEBPART-Datei:

<?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>

Das Problem ist, dass die ursprüngliche WEBPART Datei auf einem 32-Bit-System mit Visual Studio-Erweiterungen für WSS installiert erstellt wurde.

Allerdings, wie ich bin jetzt auf einer 64-Bit-Maschine VSeWSS ist nicht verfügbar, und ich glaube, dass die Ergebnisse in der obigen GUID nicht, wie ich diese Deployment-Tools verwenden bin nicht ersetzt werden.

Ersetzen der GUID mit dem vollständigen Typnamen funktioniert.

Also, wenn Sie die Fehlermeldung von Ihrem importErrorMessage Knoten auftreten, dann überprüfen Sie, dass Ihre Art Knoten in der WEBPART Datei ähnliche (nicht verwandtes Beispiel) aussieht:

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

Dies ist im Format: Klasse, Namespace, Version, Kultur, PublicKey

Sie können, dass mit Ihrer Sharepoint-Instanz zugeordnet leicht aus der web.config-Datei packen, wie es in der sicheren Steuerungsliste sein wird.

Andere Tipps

Wir hatten das gleiche Problem und fanden heraus, dass der Konstruktor unseres Web Teil von der WebPartImporter und im Konstruktor aufgerufen wurde wir SPSecurity.RunWithElevatedPrivileges taten.

Aus irgendeinem Grund die WebPartImporter kann damit nicht umgehen. So zogen wir einfach unseren Code aus dem Konstruktor OnInit (wo es gehörte wirklich) und alles ist gut.

Alle großen Vorschläge. Mein Problem war einzigartig und dumm: Ich habe die Lösung der ersten Web Application eingesetzt hatte, aber nicht auf den zweiten. Sharepoint jedoch nach wie vor erlaubt mir die Funktion auf dem zweiten Web zu aktivieren App der Site Collection (nicht sicher, warum). Dies bedeutete die zweite Web App hat keine sicheren Steuerungs Eintrag in dieser Datei Web.config hat (und ich war dummerweise die ersten Web.config-Kontrolle).

So, überprüfen Sie auf der richtigen Web-Anwendung / web.config suchen.

Jetzt bekomme ich eine Antwort für ähnliches Problem wie folgt:

Als ich hinzugefügt einen neuen wep Teil auf die Seite versuchen, Sharepoint dann zeigen Sie mir eine Fehlermeldung, sag mir - Kann nicht mein Webpart importieren, wird diese Fehlermeldung definieren in WEBPART Datei

.

So habe ich versucht, einige ohter Webparts in der Seite hinzufügen, ein seltsames quesiton Aussehen, können einige von ihnen hinzugefügt werden, einige von ihnen nicht hinzugefügt werden können.

Nachdem ich den Code meiner Web-Teil zurückverfolgt und anaylsis ihnen, fand ich den Grund:

Alt-Code für Web-Teil Project (mein Webpart Name) lautet:

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]; 
        .....
 }

jetzt aufhören, ich dachte, dass es vielleicht das Web-Seite init bestellt Problem. AS Webseite Last Webpart Steuerung wird constructrue Funktion Projectinfo () zuerst ausgeführt werden. Eigentlich havn't die Webseite seiner init beenden. durch die Zeit.

Also habe ich einen Test. Zum einen habe ich eine gute Web auf der Seite, es ist ok. dann versuche ich die Bahn an der Seite zu setzen, die sich nicht nur jetzt hinzugefügt. ~~ OK !! Es funktioniert ... weil die Seite bereits init. abgeschlossen.

Ok! Ich korrigierte meinen Code:

   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];
          ....
         }

Nachdem ich testen, did't die Fehlermeldung erneut happed ..   LoL ~~

Hope dies erklären wird Ihnen helfen.

Ich habe diese Anomalie mehrmals gesehen, ohne eine gute Auflösung.

Überprüfen Sie, ob Ihre Assembly, Namespace, Klassenname ÜBERALL korrekt ist. Dies hat hängten mich auf mehr als einmal.

Stellen Sie sicher, dass Sie einen gültigen Eintrag Safecontrols haben.

Stellen Sie sicher, Ihre WEBPART Datei gültig ist (lassen Sharepoint schaffen es für Sie, wenn Sie können)

Wenn Sie absolut sicher sind, dass alles korrekt ist, na ja, dann sind Sie an einem Ort fest, dass ich mehrmals gewesen sein. Das einzige, was ich mit oben kommen kann ist, dass VS die Montage falsch kompiliert. Der einzige Update, das ich gefunden habe, ist ein neues VS-Projekt zu erstellen und es einrichten, wie Sie benötigen, dann den Text Ihrer alten CS-Dateien in dem neuen CS-Dateien kopieren ... Sie die Dateien selbst nicht kopieren ... das Ziel ist frisch, alles zu haben.

Das hat für mich gearbeitet. Viel Glück.

Haben Sie Ihren Arbeitsprozess wieder verwendet oder IIS zurücksetzen?

Gelöst meine.

Ich war immer diese Fehlermeldung:

===========================================================================
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)   
===========================================================================

"Can not webpart importieren ..."

Das Problem war: Nicht passend GUIDS

Überprüfen Sie, ob die auf webpart Klasse guid, und in der .xml und in WEBPART Klasse sind gleich.

Ich war copy-Einfügen von Code aus anderen Quellen webparts. (Mutliple Dokument hochladen Wepart auf Codeplex) und vergessen guids zu beheben.

Ich habe auch diesen Fehler erfahren, wenn die Assemblys im GAC, dass mein Webpart Bezug genommen wird, durch eine andere starken Namen Schlüsseldatei unterzeichnet wurde, was ich erwartet habe. Das fand ich heraus, wenn dieser DLLs zu aktualisieren entscheiden. Wenn es in den GAC Einfügen bemerkte ich, dass es zwei Einträge für die gleiche DLL waren, aber sie hatten verschiedene Public Key Tokens

Ich habe diesen Fehler, wenn ich eine Basisklasse Webpart erstellt und erbte dann eine abgeleitete Klasse von ihm. Die Basisklasse war in Ordnung, aber die abgeleitete Klasse ist fehlgeschlagen, wenn ich versuchte, es zu einer Web-Seite mit dem gleichen Fehler wie der Original-Beitrag hinzuzufügen. In meinem Fall hatte ich ein Öffentlichkeit Modifikator zur Klasse hinzuzufügen:

public class DerivedWebPart : BaseWebPart

Auch habe ich einen Konstruktor in der abgeleiteten Klasse eine der Basisklasse zu nennen - obwohl ich denke, man sollte dies nicht wirklich brauchen:

    public DerivedWebPart() : base()
    {
    }

hatte ich ein Problem sehr ähnlich wie diese, aber Guids war nicht das Problem: mein webpart nicht das CLSCompliannt Attribut auf false gesetzt hat. Wie so:

namespace MyNamespace
{

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

    }
}

fand ich, dass Mine das erste Mal nicht importieren, aber wenn ich ‚Neu‘ geklickt und fügte hinzu, sie würde es funktionieren.

Von dort aus nahm ich eine Kopie des XML und speicherte es auf mein Projekt. Der Web-Teil hat super funktioniert danach.

Es dauerte nur wenige Tage, um diesen Punkt zu gelangen. Eine Menge vergeudete Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top