2009-08-11 11 views
0

Warnung: Ich bin ein asp.net-Entwickler, der meine ersten Schritte in SharePoint unternimmt.SPSite-Konstruktorproblem "Operation abgebrochen"

Also, ich schreibe eine Konsolenanwendung, die eine Verbindung zu einer SharePoint Server 2007-Website auf demselben Computer herstellt, aber es scheint, dass etwas während des Aufrufs von SPSite() -Konstruktor schief geht. Hier ist der vereinfachte Code:

using (SPSite siteCollection = new SPSite("http://server/AwesomeSite")) 
{ 

    //when i set a breakpoint on this line and inspect the siteCollection object, 
    //most of it's properties (for example siteCollection.AllWebs.Names) throw an 
    //exception, which leads me to the conclusion that something went wrong during 
    //the constructor above. 

    SPWebCollection site = siteCollection.AllWebs; 
    SPWeb web = site[""]; 
    SPList list = web.Lists["AwesomeList"]; //exception occurs here 
} 

Der SPException Text:

 
Operation aborted (Exception from HRESULT: 0x80004004 (E_ABORT)) 

Ich folgte den Rat von Sharepoint SPSite und geprüft, ob:

  1. Der Benutzer ist ein Server-Farm-Administrator.
  2. Der Benutzer verfügt über Lese- und Schreibberechtigungen für die Inhaltsdatenbank.
  3. Der Benutzer ist ein Websitesammlungsadministrator.
  4. Der Benutzer verfügt über Berechtigungen zum Zugreifen auf die Windows SharePoint Services-Website oder die SharePoint Server 2007-Website, über die der Code iteriert.

Und sie sind alle korrekt. Was könnte sonst noch dazu führen?

Antwort

1

Haben Sie versucht, den Code mit erhöhten Rechten auszuführen?

Haben die IIs einige funky Einstellungen in Bezug auf Authentifizierung? (Nur Windows-Authentifizierung versuchen)

+0

Erhöhte Privilegien haben es nicht gelöst. Die IIS-Authentifizierung ist auf integrierte Windows-Authentifizierung ohne anonymen Zugriff eingestellt. –

2

Sie benötigen mehr Debuginformationen.

Visual Studio verwenden

Versuchen Sie, den Debugger auf alle Ausnahmen zu brechen Einstellung. Gehen Sie zu Debug, Ausnahmen und Tick Common Language Runtime Ausnahmen. Dann gehen Sie zu Werkzeuge, Optionen, Debugging und deaktivieren Sie Aktivieren Sie einfach meinen Code. Abschließend an w3wp.exe anhängen. Versuchen Sie, Ihre Konsolenanwendung jetzt auszuführen, und Sie sollten feststellen, dass in w3wp.exe eine Ausnahme ausgelöst wird. Überprüfen Sie den Stack-Trace und sehen Sie, ob Sie dadurch mehr Informationen erhalten.

Mit Dumpdateien

Sie könnten auch versuchen, von einem Crash-Dump arbeiten. Dies ist zugegebenermaßen wesentlich härter, sollte Ihnen aber die Details geben, die Ihnen sonst fehlen. Das Tool ProcDump kann an w3wp.exe angehängt werden (vorausgesetzt, der Schalter -s wird nicht verwendet) und erstellt einen Dump, wenn eine nicht behandelte Ausnahme auftritt. Wenn Sie Probleme mit ProcDump haben, versuchen Sie ADPlus, die etwas ähnliches tut.

Verwenden Sie this KB article von der erstellten Abbilddatei, um WinDbg einzurichten und zu beginnen. Es gibt ein Beispiel für die Verwendung von WinDbg unter Tess Ferrandez's blog (Strategy #2).

4

Meiner Erfahrung nach hängt der SPSite() - Konstruktor stark von der Alternate Access Mappings configuration Ihrer Site ab. Stellen Sie sicher, dass die URL, die Sie in dem Konstruktor verwenden, in der Liste der Zuordnungen (z. B. http vs. https, Maschine vs. FQDN) angezeigt wird.

0

Ich habe ähnliche (nicht gleich) Problem. Ich habe es mit diesem Stück Code gelöst:

+1

Meiner Erfahrung nach ist es besser, das zugrunde liegende Sicherheits-/Konfigurationsproblem zu lösen, anstatt es zu codieren. Um fair zu sein, gibt es Fälle, in denen Code wie dieser notwendig ist. Die Situation des OP sieht für mich eher wie ein Sicherheits/Konfigurations-Problem aus. –

1

Leider gibt es Hunderte von Möglichkeiten, diesen Fehler zu generieren. Fragen Sie einfach Google.

Sie könnten die Verwendung von in Erwägung ziehen, um eine bessere Beschreibung des Fehlers zu erhalten. Hier ist ein description des Tools und ein example ein Problem damit arbeiten.

Viel Glück!

Verwandte Themen