Udostępnij za pośrednictwem


Błąd "800703fa Nielegalna operacja podjęta na kluczu rejestru"

Objaw

Operacja w programie Microsoft SharePoint 2013 lub Microsoft SharePoint 2010 kończy się niepowodzeniem i zostanie wyświetlony następujący komunikat o błędzie COMException zarejestrowany w usłudze ULS w programie 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.  

Ten błąd może wystąpić w kilku różnych scenariuszach. Na przykład ten błąd może wystąpić w scenariuszach, w których są widoczne następujące wpisy dziennika:

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)

Przyczyna

Ten problem występuje zwykle po tym, jak administrator używa konta usługi do logowania się na serwerze w celu wykonania sesji interakcyjnej, a następnie wylogowywać się. Na przykład administrator może zalogować się na serwerze frontonu internetowego (WFE) przy użyciu konta farmy, a następnie wylogować się. To działanie wymusza zwalnianie kluczy rejestru w profilu tego konta. Ten warunek sprawia, że klucze są niedostępne do użycia w przyszłości.

Rozwiązanie

Aby rozwiązać ten problem, użyj jednej z następujących metod.

Metoda 1

Nie loguj się na serwerze na potrzeby sesji interakcyjnych przy użyciu konta usługi.

Metoda 2

Wyłącz powiązaną funkcję usługi profilu użytkownika systemu Windows. Aby to zrobić, wykonaj następujące kroki.

  1. Otwórz edytor zasady grupy (Gpedit.msc) na serwerze, którego dotyczy problem.

  2. Otwórz folder UserProfiles w następującej ścieżce:

    Konfiguracja> komputeraSzablony> administracyjneSystem>UserProfiles

  3. Znajdź ustawienie Nie wymuszaj zwalniania rejestru użytkowników przy wylogowywaniem użytkownika .

  4. Zmień ustawienie na Włączone.

Więcej informacji

Aby uzyskać więcej informacji, zobacz następujący artykuł w blogu zespołu pomocy technicznej usług rozproszonych MSDN:

Aplikacja COM+ może przestać działać w systemie Windows Server 2008, gdy użytkownik tożsamości wyloguje się

Nadal potrzebujesz pomocy? Przejdź do witryny SharePoint Community.