1

On SharePoint 2010, we have one service running at SharePoint WFE which is using the SharePoint server API. If the SharePoint and our service are not used for couple days, we may get the following error if we are starting to use our service which would try to retrieve the site collections list for current Farm with elevated permission:

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.
at Microsoft.SharePoint.Library.SPRequest..ctor()
at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(SPSite site, String name, Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)
at Microsoft.SharePoint.SPRequestManager.GetContextRequest(SPRequestAuthenticationMode authenticationMode)
at Microsoft.SharePoint.Administration.SPFarm.get_RequestAny()
at Microsoft.SharePoint.SPSecurity.GetCurrentUserTokenNoApplicationPrincipalDelegated()
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)

I did some search on internet and I found out Error with SP.SPRequest COM object, it suggests that the Load User Profile on application pool needs to be true, however it is already true at our case on both SharePoint Central admin and SharePoint site (SharePoint Web service root does have that as false, however it is stopped and running under local service, based on More on SharePoint 2010 Application Pools, it is ok)

Restart of our service would fix this issue. Any idea what I should look at here for this error? At this point, it is not consistently that we could reproduce this.

2

Here are some new findings from our side, so I am going to answer this question myself.

Here is another similar post: http://adammcewen.wordpress.com/2012/12/10/reporting-services-is-sleepingand-wont-wake-up/, so the issue seems related with temp information related with the domain user account used to run the SharePoint service is unloaded after long inactivity time.

For the COM error code, unfortunately I could not find out exactly what it means based on current internet search (MS did not do a good job on COM error code). Sometimes, COM error code wraps the low level Win32 error code inside it.

So for 800703fa, the win32 error code could be 0x3fa in hex and 1018 in decimal, it would mean some registry key is deleted when accessing (meaning some registry information related with domain user is unloaded), again this is just a guess at this point.

// MessageId: ERROR_KEY_DELETED

// MessageText:

// Illegal operation attempted on a registry key that has been marked for deletion.

define ERROR_KEY_DELETED 1018L

Actually the Load User Profile on SecurityTokenServiceApplicationPool on our env which is used by SharePoint User Profile service was false, I changed to true for this and did iisreset.

At this point, it seems the "LoadUserPorfile" is still the root cause although we are still keeping an eye on this.

2

https://support.microsoft.com/en-us/kb/3114011

When a user logs in with service account and logs out, it unloads the keys if we don't have the right policies in place. Then it can't get to the registry to lookup the COM object for SPReqeust by its GUID.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.