Durante la creazione di un web service per il prelievo di alcuni dati da sharepoint, mi sono imbattuto in questo errore:
"Cannot connect to the configuration database."
Mi sono accorto che questo errore veniva ritornato semplicemente cercando di creare un nuovo oggetto di tipo SPSite. Cerco su google e mi imbatto in questo documento microsoft:
http://support.microsoft.com/?id=823287.
Ecco cosa dice di controllare quel documento:
- che sql server sia attivo
- che IIS non stia girando in "isolation mode"
- che l'application pool del sito IIS giri con un account che abbia permessi sul database di sharepoint
Non ci crederete ... ancora un errore:
"Access denied."
Eppure sono convinto che l'utenza con cui ho deciso di far girare l'application pool ha diritti anche sul database !
Volete sapere qual'era l'inghippo ?
Nelle proprietà del sito IIS va specificata l'autenticazione integrata, e va disabilitato l'accesso anonimo. E nel web.config del web service va aggiunta l'impersonation:
<identity impersonate="true" />
In questo modo il web service effettua una richiesta al database di Sharepoint con l'utenza con cui gira l'application pool, utenza da voi scelta, con i giusti permessi per l'accesso a Sql Server.
In questo modo è possibile esporre dal proprio server dei web service che forniscano informazioni sul contenuto dei vostri siti sharepoint, senza dover essere legati dall'utilizzo dei web service esposti da sharepoint stesso.