Auch wenn Erstellung neuer SiteColletions in meiner SharePoint on premise Umgebung in der Regel über eine Automatisierung erfolgen, ist es ab und an dann doch erforderlich zu Testwecken, manuell neue Webseitensammlungen zu erstellen. Da erschrickt man dann doch, wenn die Erstellung mit “Object reference not set to an instance of an object” abbricht.
Die Ursache liegt darin begründet, dass zu der betroffenen WebApplication ein “defekter” Verweis in der ConfigDB vorhanden ist. Dieser “null” Verweis führt zur eingangs genannten Fehlermeldung.
Um dieses zu beheben, geht man wie folgt vor:
Zunächst beschafft man sich die ID der betroffenen WebApplication:
(Get-SPWebApplication "https://deine-webapplication.de").ID
Ausgabe ist dann wie folgt:
41f8f614-4f67-416b-8aa9-05ca08b8d614
Die ID packt man dann in folgende SQL Abfrage und führt diese Abfrage im SQL Management Studio gegen die SharePoint_ConfigDB aus:
SELECT ID, Name, CAST (properties as xml) AS Result
FROM [Objects]
WHERE ID = '41f8f614-4f67-416b-8aa9-05ca08b8d614'
Im Ergebnis der Abfrage klickt man dann auf den Link der Spalte Result und sucht hier nach dem Block “m_Databases”.
Hier werden dann alle Inhaltdatenbankverweise inkl. Angabe der entsprechenden IDs gelistet.
Hier wird man dann einen Eintrag mit einem “null” Verweis finden.
Die entsprechende Datenbank ID über dem “null” wird notiert und anschliessend in folgende PowerShell Befehlsfolge eingesetzt:
$WA=Get-SPWebApplication
"https://deine-betroffene-webapplication/"
$WebApp.ContentDatabases.delete("b1d9f014-2335-4419-854f-60ec202a24fb")
Achtung: Auch hier wird die Shell “Object reference not set to an instance of an object” zurückliefern. Das ist aber nicht weiter schlimm. Die Löschung der “null” Verweis Datenbank erfolgt dennoch.
Ein Hinweis zum Schluss:
Auch wenn es in diesem Beispiel nicht der Fall ist, sollte man es tunlichst vermeiden direkt in die SharePoint_ConfigDB zu schreiben. Diese Datenbank ist heilig! 😉