I've created a SharePoint 2013-hosted WCF service that uses Word Automation Services to synchronously convert documents to other formats. My service works most of the time but fails at random intervals, the failure symptom being that the service request terminates abruptly. No exceptions are thrown from within my service code, but I do find this message in the SharePoint log every time the service fails:
"An unhandled exception has occurred. The security token request cannot be completed."
The call stack, which I'm including below my signature, seems to indicate that the exception is occurring from within a thread that is checking the status of the synchronous conversion. (Something called "Microsoft.Office.ConversionServices.Service.ConversionServiceApplicationProxy.BatchGetSyncJobStatus" appears in the stack.)
What might be causing this? I suspect it's a SharePoint configuration issue, but I don't know what to look at.
Thanks,
Tony
Call stack from SharePoint log, badly formatted:
6/05/2013 17:04:56.01 w3wp.exe (0x1938) 0x0864 SharePoint Foundation Runtime a1yj Exception An unhandled exception
has occurred. The security token request cannot be completed. System.InvalidOperationException: The security token request cannot be completed. at Microsoft.SharePoint.SPSecurityContext.SecurityTokenForServiceContext(Uri contextUri)
at Microsoft.SharePoint.SPChannelFactoryOperations.InternalCreateChannelActingAsLoggedOnUser[TChannel](ChannelFactory`1 factory, EndpointAddress address, Uri via) at Microsoft.Office.ConversionServices.Service.ConfigChannelFactory`1.CreateChannel(EndpointAddress
address) at Microsoft.Office.ConversionServices.Service.ConversionServiceApplicationProxy.GetChannel(Uri uri) at Microsoft.Office.ConversionServices.Service.ConversionServiceApplicationProxy.ExecuteOnChannel(Uri
endpointAddress, Action`1 action) at Microsof...
06/05/2013 17:04:56.01* w3wp.exe (0x1938) 0x0864 SharePoint Foundation Runtime a1yj Exception ...t.Office.ConversionServices.Service.ConversionServiceApplicationProxy.BatchGetSyncJobStatus(ICollection`1
ucids, Uri endpointAddress) at Microsoft.Office.ConversionServices.Service.BatchGetStatusPollingThread.Run() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback
callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
-- Tony