SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Custom Webpart wirft Fehler

Unbeantwortet Dieser Beitrag hat 8 Antworten

Ohne Rang
54 Beiträge
DDG erstellt 25 Okt. 2012 10:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

ich habe in Visual Studio ein visual Webpart geschrieben. Um zu testen, ob es funktioniert habe ich es auf einer Seite von einer Dokumentenbibliothek eingefügt. Das Problem ist, wenn ich jetzt auf die Seite der Dokumentbibliothek gehe kommt folgende Fehlerseite:

Leider kann ich den Screenshot nicht einfügen (oder weiß nciht wie es geht). Dann mal Textuell (dürfte die Standard Fehler Seite von SP sein)

Fehler

Der Thread wurde abgebrochen.

Führen Sie die Problembehandlung mit MIcrosoft SharePoint Foundation aus.

Korrelations-ID: ....

Woran kann es liegen, dass dieser Fehler auftritt? Und wie bekomme ich nun das Webpart wieder gelöscht? Denn ich kann ja nicht auf die Seite zugreifen und sie bearbeiten. Wie kann man denn am besten Testen, ob ein Webpart funktioniert, der Debug Modus bringt mich zum gleichen Fehler. Ich wäre sehr dankbar für eure Hilfe.

Gruß Dennis

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Okt. 2012 10:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du mußt in jedem Fall mehr über den Fehler herausfinden. Suche in den Logs nach der korrelations-ID oder benutze den Debugger.

[quote user="DDG"]Und wie bekomme ich nun das Webpart wieder gelöscht?[/quote]

Das geht über die sog. Webpartwartungsseite. Hänge an die URL der Seite ein Contents=1 an, so daß es etwa so aussieht:
.../site/default.aspx?Contents=1

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 25 Okt. 2012 11:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also ich hab es geschaff das Webpart zu löschen und hab auch den Code aus dem Webpart auskomentiert damit nur noch die Hülle da ist also so wie das Webpart generiert wird. Jetzt kommt folgender Fehler:

Ein Webpart oder Webformular-Steuerelement auf dieser Seite kann nicht angezeigt werden. Der Typ konnte nicht gefunden werden oder ist nicht als sicher registriert.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Okt. 2012 12:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="DDG"]Ein Webpart oder Webformular-Steuerelement auf dieser Seite kann nicht angezeigt werden. Der Typ konnte nicht gefunden werden oder ist nicht als sicher registriert[/quote]

Da gibt es zwei Möglichkeiten:

- in Deiner .webpart-Datei stimmt der Klassen- oder Assemblyverweis nicht.
- der SafeControl-Eintrag fehlt oder stimmt nicht.

In beiden Fällen bitte auf exakte Schreibung achten - auch auf exakte Groß-/Kleinschreibung!

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 25 Okt. 2012 14:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für deine Antwort. Inzwischen habe ich die genauere Fehlerbeschreibung:

 

 

 

 

 

 

[UnsafeControlException: Ein Webpart oder Webformular-Steuerelement auf dieser Seite kann nicht angezeigt oder importiert werden. Der Typ 'OtherDoks.VisualWebPart1.VisualWebPart1, OtherDoks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9125cf168c4c023' wurde nicht gefunden oder ist nicht als sicher registriert.]
bei Microsoft.SharePoint.ApplicationRuntime.SafeControls.GetTypeFromGuid(Guid guid, Guid solutionId, String assemblyFullName, String typeFullName, Boolean throwIfNotFound)
bei Microsoft.SharePoint.WebPartPages.SPWebPartManager.CreateWebPartsFromRowSetData(Boolean onlyInitializeClosedWebParts)

Also der Klassen- oder Assemblyverweis müsste eigentlich stimmen. Meine Projektmappe und Projekt heißen OtherDoks. Die restlichen Klassen wurden nicht verändert also standard VisualWebPart1. Ich habe dem Projekt noch eine normale c# Klasse hinzugefügt, die aus der VisualWebPart1 aufgerufen wird. Muss ich die noch irgendwie bekannt machen? Hier ist mal die .webpart:

 

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="
http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <type name="OtherDoks.VisualWebPart1.VisualWebPart1, $SharePoint.Project.AssemblyFullName$" />
      <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="Title" type="string">VisualWebPart1</property>
        <property name="Description" type="string">My Visual WebPart</property>
      </properties>
    </data>
  </webPart>
</webParts>

Den SafeControl-Eintrag habe ich in Visual Studio unter den Properties des VisualWebPart1 Folder bearbeitet. Dabei habe ich die Safe Control Entries Collection geöffnet und in dem pop-up Fenster stand unter Assembly $SharePoint.Project.AssemblyFullName$ und unter Namespace OtherDoks.VisualWebPart1, Safe = True, Safe  Against Script = False, Type Name = * (jetzt OtherDoks.VisualWebPart1.VisualWebPart1). Ich denk mal das müsste eigentlich auch stimmen, oder?

Hier noch die ascx:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VisualWebPart1UserControl.ascx.cs" Inherits="OtherDoks.VisualWebPart1.VisualWebPart1UserControl" %>

Ich bin langsam echt am verzweifeln...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Okt. 2012 14:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hört sich so an, als ob alles passen würde. Trotzdem ist dort irgendwo ein Fehler. Prüfe nochmal jede Schreibweise und vergleiche mit Namespace und Name der WebPart-Klasse. Schmeiß die "alte" .webpart aus dem Webpartkatalog der Website. Prüfe, ob die WebPart-Klasse public ist. Prüfe, ob der SafeControl-Eintrag auch in der web.config ankommt.

Mehr fällt mir nicht ein.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 25 Okt. 2012 14:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Allerdings wenn ich den ganzen Code auskommentiere und das Webpart so einbinde kann es angezeigt werden. Also zumindest die Überschrift.

Ohne Rang
54 Beiträge
DDG Als Antwort am 25 Okt. 2012 14:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Funktion Webpart bearbeiten ist auch verfügbar

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 25 Okt. 2012 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schau die im VS die Package Datei im Designer an dort kannst du dann sehen wie und vorallem ob der SafeControl Eintrag hinzugefügt wird