Sviluppando su SharePoint (WSS 3.0 o MOSS 2007) tramite il modello ad oggetti lato server, il più delle volte in ambiente di test (dove sono solito incasinare più o meno tutto e non controllare mai nulla :), mi è capitato di trovarmi di fronte a questo messaggio di errore:
Operation aborted (Exception from HRESULT: 0×80004004 (E_ABORT))
System.Runtime.InteropServices.COMException : Operation aborted (Exception from HRESULT: 0×80004004 (E_ABORT))
at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateRoleAssignment(String bstrUrl, Guid& pguidScopeId, Int32 lPrincipalID, Object& pvarArrIdRolesToAdd, Object& pvarArrIdRolesToRemove)
at Microsoft.SharePoint.Library.SPRequest.UpdateRoleAssignment(String bstrUrl, Guid& pguidScopeId, Int32 lPrincipalID, Object& pvarArrIdRolesToAdd, Object& pvarArrIdRolesToRemove)
System.Runtime.InteropServices.COMException : Operation aborted (Exception from HRESULT: 0×80004004 (E_ABORT))
at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateRoleAssignment(String bstrUrl, Guid& pguidScopeId, Int32 lPrincipalID, Object& pvarArrIdRolesToAdd, Object& pvarArrIdRolesToRemove)
at Microsoft.SharePoint.Library.SPRequest.UpdateRoleAssignment(String bstrUrl, Guid& pguidScopeId, Int32 lPrincipalID, Object& pvarArrIdRolesToAdd, Object& pvarArrIdRolesToRemove)
In questo caso specifico, trovavo questa eccezione quando cercavo di modificare i permessi di un elemento SharePoint via codice, o quando cercavo di rompere l'ereditarietà di un elemento dall'elemento padre, ma vi può capitare durante uno qualsiasi degli update che cercate di fare sul database di SharePoint tramite il modello ad oggetti.
Cercando un pò su internet, ho trovato le due possibili cause per questo errore:
1- il database log legato al db di contenuto di SharePoint risulta essere pieno.
2- l'account con cui cercate di accedere al database dei contenuti non ha permessi per accedere.
Il mio caso era il primo, quindi è bastato un backup del database per liberare lo spazio nel database log.
Per vedere bene cosa succede a SharePoint, quando capitano questi tipi di errori, vi consiglio di utilizzare l'utility SPTraceView che trovate su codeplex a questo indirizzo:
http://sptraceview.codeplex.com/
che vi permettere di visualizzare in tempo reale gli errori che accadono su SharePoint.
Spero possa essere utilie a qualcuno..