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 le message d’erreur COMException suivant est consigné 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 différents scénarios. 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 à l’aide du compte de la 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 de stratégie de groupe (Gpedit.msc) sur le serveur concerné.

  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 de l’utilisateur au niveau du paramètre de décomft de l’utilisateur.

  4. Modifiez le paramètre sur Activé.

Informations supplémentaires

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

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

Encore besoin d’aide ? Go to SharePoint Community.