Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 尝试使用CRM SOAP端点时偶尔会抛出;“用户id无效”;_Wcf_Authentication_Soap_Iis 7_Dynamics Crm 2011 - Fatal编程技术网

Wcf 尝试使用CRM SOAP端点时偶尔会抛出;“用户id无效”;

Wcf 尝试使用CRM SOAP端点时偶尔会抛出;“用户id无效”;,wcf,authentication,soap,iis-7,dynamics-crm-2011,Wcf,Authentication,Soap,Iis 7,Dynamics Crm 2011,我们有一个内部客户关系管理系统,具有汇总13。一些表单需要填充来自多个来源的外部数据,并且需要预处理。为此,我们开发了一个自定义WCF服务,该服务与CRM运行在同一台服务器上,作为CRM网站中的虚拟应用程序托管在IIS中(以避免跨域脚本问题),并将REST端点公开给在CRM表单中运行的javascript。javascript发出请求,服务收集和处理数据,然后用一些漂亮的简单JSON回复javascript 由于我们需要的一些数据来自CRM本身,我们认为我们也应该让服务收集这些数据(使用CRM的

我们有一个内部客户关系管理系统,具有汇总13。一些表单需要填充来自多个来源的外部数据,并且需要预处理。为此,我们开发了一个自定义WCF服务,该服务与CRM运行在同一台服务器上,作为CRM网站中的虚拟应用程序托管在IIS中(以避免跨域脚本问题),并将REST端点公开给在CRM表单中运行的javascript。javascript发出请求,服务收集和处理数据,然后用一些漂亮的简单JSON回复javascript

由于我们需要的一些数据来自CRM本身,我们认为我们也应该让服务收集这些数据(使用CRM的SOAP端点),而不是直接从javascript向CRM web服务发出请求。我们在IIS中设置了直通身份验证,因此我们的自定义应用程序在模拟登录到CRM的用户的同时向CRM发出请求

大多数时候,这一切都非常有效。然而,一旦我们有了更多的测试人员,我们就开始注意到有时CRM会停止为某些用户回复我们的服务,并抛出异常。如果该用户关闭浏览器并重新打开,然后尝试完全相同的操作,则所有操作都会重新开始工作。我在CRM服务器上打开了跟踪,发现发生这种情况时,CRM正在记录“CRM异常:消息:用户Id无效,错误代码:-2147214049”。完整跟踪如下:

[2013-09-10 08:54:14.492] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:   69 |Category: Exception |User: 00000000-0000-0000-0000-000000000000 |Level: Error |ReqId: 4b901457-a545-4844-9ce8-b017d3833087 | CrmException..ctor  ilOffset = 0x36
at CrmException..ctor(Int32 errorCode, Object[] arguments)  ilOffset = 0x36
at SecurityLibrary.GetPrivilegedUserCallerAndBusinessGuidsFromThread(WindowsIdentity identity, IOrganizationContext context)  ilOffset = 0x6F
at SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity identity, Guid organizationId, LocatorServiceContext locatorServiceContext)  ilOffset = 0x56
at UserManagementFactory.ValidateSpecialUser(WindowsIdentity identity, Guid organizationId)  ilOffset = 0x1E
at WindowsIdentityAuthorizationManager.Authenticate(OperationContext operationContext)  ilOffset = 0x185
at WindowsIdentityAuthorizationManager.CheckAccessCore(OperationContext operationContext)  ilOffset = 0x22
at AuthorizationBehavior.Authorize(MessageRpc& rpc)  ilOffset = 0x28
at ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)  ilOffset = 0x293
at MessageRpc.Process(Boolean isOperationContextSet)  ilOffset = 0x62
at ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)  ilOffset = 0x1D7
at ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)  ilOffset = 0xF1
at ChannelHandler.AsyncMessagePump(IAsyncResult result)  ilOffset = 0x21
at AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)  ilOffset = 0x0
at AsyncResult.Complete(Boolean completedSynchronously)  ilOffset = 0xC2
at ReceiveItemAndVerifySecurityAsyncResult`2.InnerTryReceiveCompletedCallback(IAsyncResult result)  ilOffset = 0x55
at AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)  ilOffset = 0x0
at AsyncResult.Complete(Boolean completedSynchronously)  ilOffset = 0xC2
at AsyncQueueReader.Set(Item item)  ilOffset = 0x21
at InputQueue`1.Dispatch()  ilOffset = 0x121
at ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)  ilOffset = 0x22
at IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)  ilOffset = 0x5
at _IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)  ilOffset = 0x3C
>Crm Exception: Message: The user Id is invalid., ErrorCode: -2147214049
[2013-09-10 08:54:14.508] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:   69 |Category: Platform.Sdk |User: 00000000-0000-0000-0000-000000000000 |Level: Error |ReqId: 4b901457-a545-4844-9ce8-b017d3833087 | ServiceModelTraceRedirector.TraceData  ilOffset = 0x45
><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error"><TraceIdentifier>http://msdn.microsoft.com/en-CA/library/System.ServiceModel.Diagnostics.TraceHandledException.aspx</TraceIdentifier><Description>Handling an exception.</Description><AppDomain>/LM/W3SVC/1/ROOT-6-130232384646037254</AppDomain><Exception><ExceptionType>Microsoft.Crm.CrmException, Microsoft.Crm.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</ExceptionType><Message>The user Id is invalid.</Message><StackTrace>   at Microsoft.Crm.BusinessEntities.SecurityLibrary.GetPrivilegedUserCallerAndBusinessGuidsFromThread(WindowsIdentity identity, IOrganizationContext context)
>   at Microsoft.Crm.BusinessEntities.SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity identity, Guid organizationId, LocatorServiceContext locatorServiceContext)
>   at Microsoft.Crm.Authentication.UserManagementFactory.ValidateSpecialUser(WindowsIdentity identity, Guid organizationId)
>   at Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.Authenticate(OperationContext operationContext)
>   at Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.CheckAccessCore(OperationContext operationContext)
>   at System.ServiceModel.Dispatcher.AuthorizationBehavior.Authorize(MessageRpc&amp;amp; rpc)
>   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp;amp; rpc)
>   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace><ExceptionString>Microsoft.Crm.CrmException: The user Id is invalid.
>   at Microsoft.Crm.BusinessEntities.SecurityLibrary.GetPrivilegedUserCallerAndBusinessGuidsFromThread(WindowsIdentity identity, IOrganizationContext context)
>   at Microsoft.Crm.BusinessEntities.SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity identity, Guid organizationId, LocatorServiceContext locatorServiceContext)
>   at Microsoft.Crm.Authentication.UserManagementFactory.ValidateSpecialUser(WindowsIdentity identity, Guid organizationId)
>   at Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.Authenticate(OperationContext operationContext)
>   at Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.CheckAccessCore(OperationContext operationContext)
>   at System.ServiceModel.Dispatcher.AuthorizationBehavior.Authorize(MessageRpc&amp;amp; rpc)
>   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp;amp; rpc)
>   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</ExceptionString></Exception></TraceRecord>
[2013-09-10 08:54:14.492]流程:w3wp |组织:00000000-0000-0000-0000-000000000000000000 |线程:69 |类别:异常|用户:00000000-0000-0000-0000-000000000000000000 |级别:错误|请求ID:4b901457-a545-4844-9ce8-b017d3833087 | CRMEException..ilOffset=0x36
在CRMEException..ctor处(Int32错误代码,对象[]参数)ilOffset=0x36
在SecurityLibrary.GetPrivilegeDuserCallandBusinessGuidsFromThread(WindowsIdentity标识,IOOrganizationContext上下文)中,ilOffset=0x6F
在SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity标识、Guid组织ID、LocatorServiceContext LocatorServiceContext)中,ilOffset=0x56
在UserManagementFactory.ValidateSpecialUser(WindowsIdentity,Guid organizationId)中,ilOffset=0x1E
在WindowsIdentityAuthorizationManager.Authenticate(OperationContext OperationContext)ilOffset=0x185
在WindowsIdentityAuthorizationManager.CheckAccessCore(OperationContext OperationContext)ilOffset=0x22
at AuthorizationBehavior.Authorize(MessageRpc&rpc)ilOffset=0x28
在ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&rpc)ilOffset=0x293时
在MessageRpc.Process(Boolean isOperationContextSet)中,ilOffset=0x62
在ChannelHandler.DispatchAndReleasePump(RequestContext请求,布尔cleanThread,OperationContext currentOperationContext)中,ilOffset=0x1D7
在ChannelHandler.HandlerRequest(RequestContext请求,OperationContext currentOperationContext)中,ilOffset=0xF1
在ChannelHandler.AsyncMessagePump(IAsyncResult结果)中,ilOffset=0x21
在AsyncThunk.UnhandledExceptionFrame(IAsyncResult结果)时,ilOffset=0x0
在AsyncResult.Complete(布尔同步完成)时,ilOffset=0xC2
在ReceiveItemAndVerifySecurityAsyncResult`2处。InnerTryReceiveCompletedCallback(IAsyncResult结果)ilOffset=0x55
在AsyncThunk.UnhandledExceptionFrame(IAsyncResult结果)时,ilOffset=0x0
在AsyncResult.Complete(布尔同步完成)时,ilOffset=0xC2
在AsyncQueueReader.Set(Item)中,ilOffset=0x21
在InputQueue`1.Dispatch()中,ilOffset=0x121
在scheduledverlapped.IOCallback(UInt32错误代码,UInt32个字节,NativeOverlapped*NativeOverlapped)中,ilOffset=0x22
在IOCompletionThunk.UnhandledExceptionFrame(UInt32错误,UInt32字节读取,NativeOverlapped*NativeOverlapped)时,ilOffset=0x5
at_IOCompletionCallback.PerformIOCompletionCallback(UInt32错误代码,UInt32个字节,NativeOverlapped*pOVERLAP)ilOffset=0x3C
>Crm异常:消息:用户Id无效,错误代码:-2147214049
[2013-09-10 08:54:14.508]流程:w3wp |组织:00000000-0000-0000-000000000000 |线程:69 |类别:平台.Sdk |用户:00000000-0000-0000-00000000000000 |级别:错误|请求ID:4b901457-a545-4844-9ce8-b017d3833087 | ServiceModelTraceRedirector.TraceData ilOffset=0x45
>http://msdn.microsoft.com/en-CA/library/System.ServiceModel.Diagnostics.TraceHandledException.aspxHandling 异常。/LM/W3SVC/1/ROOT-6-130232384646037254Microsoft.Crm.crmeexception,Microsoft.Crm.Core,Version=5.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35用户Id无效。位于Microsoft.Crm.BusinessEntities.SecurityLibrary.GetPrivilegedUserCallandBusinessGuidsFromThread(WindowsIdentity标识,IOR组织上下文)
>位于Microsoft.Crm.BusinessEntities.SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity标识、Guid组织ID、LocatorServiceContext LocatorServiceContext)
>位于Microsoft.Crm.Authentication.UserManagementFactory.ValidateSpecialUser(WindowsIdentity标识,Guid组织ID)
>在Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.Authentication(操作上下文操作上下文)
>位于Microsoft.Crm.Authentication.WindowsIdentityAuthorizationManager.CheckAccessCore(OperationContext OperationContext)
>位于System.ServiceModel.Dispatcher.AuthorizationBehavior.Authorization(MessageRpc&;rpc)
>位于System.ServiceModel.Dispatcher.ImmutableDispatcheRuntime.ProcessMessage11(MessageRpc&;rpc)
>位于System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)的Microsoft.Crm.CRMEException:用户Id无效。
>位于Microsoft.Crm.BusinessEntities.SecurityLibrary.GetPrivilegedUserCallandBusinessGuidsFromThread(WindowsIdentity标识,IOR组织上下文)
>位于Microsoft.Crm.BusinessEntities.SecurityLibrary.GetCallerAndBusinessGuidsFromThread(WindowsIdentity标识、Guid组织ID、LocatorServiceContext LocatorServiceContext)
>在Microsoft.Crm.Authentic上