Erreur « 800703fa Tentative d’opération illégale sur une clé de Registre »

Symptôme

Une opération dans Microsoft SharePoint 2013 ou Microsoft SharePoint 2010 échoue et vous voyez le message d’erreur COMException suivant enregistré dans ULS dans SharePoint LogViewer :

[System.Runtime.InteropServices.COMException (0x800703FA): Retrieving the COM class factory for component with CLSID {<GUID>} failed due to the following error: 800703fa Illegal operation attempted on a registry key that has been marked for deletion.  

Cette erreur peut se produire dans plusieurs scénarios différents. Par exemple, cette erreur peut se produire dans les scénarios dans lesquels vous voyez les entrées de journal suivantes :

11/03/2015 20:09:45.83 w3wp.exe (0x1A24) 0x46CC SharePoint Portal Server Microfeeds ada0j Unexpected
MicroBlogList.GetMicroBlogPostsForRePopulation http://mysite/personal/12345 permanent failure
Exception:
[System.Runtime.InteropServices.COMException (0x800703FA): Retrieving the COM class factory for component with CLSID
{BDEADF26-C265-11D0-BCED-00A0C90AB50F} failed due to the following error: 800703fa Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA).
at Microsoft.SharePoint.Library.SPRequest..ctor()
at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(...)
at Microsoft.SharePoint.SPRequestManager.GetContextRequest(SPRequestAuthenticationMode authenticationMode)
at Microsoft.SharePoint.Administration.SPFarm.get_RequestAny()
at Microsoft.SharePoint.SPSecurity.GetCurrentUserTokenNoApplicationPrincipalDelegated(SPWebApplication webApp, Uri siteUrl)
at Microsoft.SharePoint.SPSecurity.GetCurrentUserToken()
at Microsoft.SharePoint.SPSecurity.EnsureOriginatingUserToken()
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
at Microsoft.Office.Server.UserProfiles.SPS2SAppContext.GetClientContext(...)
at Microsoft.Office.Server.UserProfiles.SPS2SAppExecutionContextBase.get_ClientContext()
at Microsoft.Office.Server.Microfeed.SPMicrofeedStore.Query(...)
at Microsoft.Office.Server.Microfeed.MicroBlogList.ExecuteRepopulationCamlQuery(...)
at Microsoft.Office.Server.Microfeed.MicroBlogList.GetMicroBlogPostsForRePopulation...)]
Handling an exception. Exception details: System.Runtime.InteropServices.COMException (0x800703FA): Retrieving the COM class factory for component with CLSID {BDEADF26-C265-11D0-BCED-00A0C90AB50F} failed due to the following error: 800703fa Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA).  
at Microsoft.SharePoint.Library.SPRequest..ctor()  
at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(...)  
at Microsoft.SharePoint.SPRequestManager.GetContextRequest(SPRequestAuthenticationMode authenticationMode)  
at Microsoft.SharePoint.Administration.SPFarm.get_RequestAuthAny()  
at Microsoft.SharePoint.Administration.SPAcl`1.CalculatePermissions()  
at Microsoft.SharePoint.Administration.SPIisWebServiceApplication.CheckAccess(SPIisWebServiceApplicationRights rights)  
at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplication.DoesUserHavePermissions(...)  
at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplication.GetChangedTermSets(...)  
at SyncInvokeGetChangedTermSets(Object , Object[] , Object[] )  
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)  
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)  
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)  
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)  
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

Cause

Ce problème se produit généralement après qu’un administrateur utilise un compte de service pour se connecter au serveur pour une session interactive, puis se déconnecte. Par exemple, un administrateur peut se connecter à un serveur web frontal (WFE) à l’aide du compte de batterie de serveurs, puis se déconnecter. Cette activité force le déchargement des clés de Registre dans le profil de ce compte. Cette condition rend les clés indisponibles pour une utilisation ultérieure.

Résolution

Pour résoudre ce problème, utilisez l’une des méthodes suivantes.

Méthode 1

Ne vous connectez pas au serveur pour les sessions interactives à l’aide d’un compte de service.

Méthode 2

Désactivez la fonctionnalité de service de profil utilisateur Windows associée. Pour cela, procédez comme suit :

  1. Ouvrez l’éditeur stratégie de groupe (Gpedit.msc) sur le serveur affecté.

  2. Ouvrez le dossier UserProfiles dans le chemin d’accès suivant :

    Configuration de l’ordinateur>Modèles d’administration>Système>UserProfiles

  3. Recherchez le paramètre Ne pas décharger de force le registre des utilisateurs au moment de la fermeture de session de l’utilisateur .

  4. Remplacez le paramètre par Activé.

Informations supplémentaires

Pour plus d’informations, consultez l’article suivant de l’équipe de support technique MSDN Distributed Services :

Une application COM+ peut cesser de fonctionner sur Windows Server 2008 lorsque l’utilisateur d’identité se déconnecte

Encore besoin d’aide ? Accédez au site de la Communauté SharePoint.