Partilhar via


Erro "800703fa Operação ilegal tentada numa chave de registo"

Sintoma

Uma operação no Microsoft SharePoint 2013 ou Microsoft SharePoint 2010 falha e verá a seguinte mensagem de erro COMException registada na ULS no 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.  

Este erro pode ocorrer em vários cenários diferentes. Por exemplo, este erro pode ocorrer em cenários em que verá as seguintes entradas de registo:

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)

Causa

Normalmente, este problema ocorre depois de um administrador utilizar uma conta de serviço para iniciar sessão no servidor para uma sessão interativa e, em seguida, terminar sessão. Por exemplo, um administrador pode iniciar sessão num servidor de Front-end da Web (WFE) com a conta do farm e, em seguida, terminar sessão. Esta atividade força as chaves de registo a serem descarregadas no perfil dessa conta. Esta condição torna as chaves indisponíveis para utilização futura.

Resolução

Para resolver este problema, utilize um dos seguintes métodos.

Método 1:

Não inicie sessão no servidor para sessões interativas com uma conta de serviço.

Método 2:

Desative a funcionalidade do Serviço de Perfis de Utilizador do Windows relacionada. Para tal, siga estes passos:

  1. Abra o editor de Política de Grupo (Gpedit.msc) no servidor afetado.

  2. Abra a pasta UserProfiles no seguinte caminho:

    Configuração do> ComputadorModelos Administrativos>Sistema>UserProfiles

  3. Localize a definição Não descarregar com força o registo de utilizador ao terminar sessão do utilizador.

  4. Altere a definição para Ativado.

Mais Informações

Para obter mais informações, veja o seguinte artigo do Blogue da Equipa de Suporte dos Serviços Distribuídos do MSDN:

Uma aplicação COM+ pode deixar de funcionar no Windows Server 2008 quando o utilizador de identidade terminar sessão

Ainda necessita de ajuda? Vá a Comunidade SharePoint