2014-04-15 2 views
0

프로덕션 환경에 솔루션을 배포 한 이래로 특정 대화 상자가 올바르게 작동하지 않습니다. 프로덕션 환경에서 가져온 솔루션에서 대화 상자는 존재하지만 수정하지 않았습니다. 몇 가지 다른 워크 플로 만 추가했으며 배포 할 때 대상 환경 (프로덕션)의 모든 사용자 지정을 덮어 씁니다.배포 후 대화 실패

몇 가지 이유로 보안 역할은 솔루션 (?)의 일부가 아니더라도 수정되었습니다. 그 이후로 우리는 작업 흐름/대화 상자가 다시 작동하도록 역할을 수정했지만 여전히 하나의 대화 상자에 문제가 있습니다. 여기

로그 파일입니다

>Crm Exception: Message: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: 3732d599-343b-e211-ada4-0050569512fe, OwnerId: 8a3819fd-333b-e211-ada4-0050569512fe, OwnerIdType: 9 and CallingUser: a6e65698-daa2-e211-bd17-0050569512fe. ObjectTypeCode: 2020, objectBusinessUnitId: 765d6665-293b-e211-ada4-0050569512fe, AccessRights: ReadAccess , ErrorCode: -2147187962 
[2014-04-15 08:28:37.797] Process: w3wp |Organization:f6ff335a-293b-e211-ada4-0050569512fe |Thread: 13 |Category: Platform.Sdk |User: a094a9a1-29f2-4079-972c-b682b966825c |Level: Error |ReqId: 85a8444a-bcd0-4de6-ada5-30e8eea8a142 | VersionedPluginProxyStepBase.Execute ilOffset = 0x65 
>Web Service Plug-in failed in SdkMessageProcessingStepId: {CFCBBB1B-EA3E-DB11-86A7-000A3A5473E8}; EntityName: queueitem; Stage: 30; MessageName: Retrieve; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. 
    at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values) 
    at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider) 
    at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context) 
    at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) 
Inner Exception: Microsoft.Crm.CrmSecurityException: SecLib::AccessCheckEx failed. Returned hr = -2147187962, ObjectID: 3732d599-343b-e211-ada4-0050569512fe, OwnerId: 8a3819fd-333b-e211-ada4-0050569512fe, OwnerIdType: 9 and CallingUser: a6e65698-daa2-e211-bd17-0050569512fe. ObjectTypeCode: 2020, objectBusinessUnitId: 765d6665-293b-e211-ada4-0050569512fe, AccessRights: ReadAccess 
    at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx2(ExecutionContext context, SecurityPrincipal principal, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights) 
    at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityPrincipal ownerPrincipal, Guid objectId, Int32 objectTypeCode, Guid objectBusinessUnitId, AccessRights rights) 
    at Microsoft.Crm.BusinessEntities.SecurityLibrary.AccessCheckEx(ExecutionContext context, SecurityAttributes attributes, AccessRights rights) 
    at Microsoft.Crm.BusinessEntities.SecurityExtension.PostRetrieveHandler(Object sender, ExtensionEventArgs e) 
    at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context, Int32 languageCode, DatabaseQueryTarget queryTarget) 
    at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context, Int32 languageCode) 
    at Microsoft.Crm.BusinessEntities.BusinessProcessObject.Retrieve(BusinessEntityMoniker moniker, EntityExpression entityExpression, ExecutionContext context) 

내가 ID CFCBBB1B-EA3E-DB11-86A7-000A3A5473E8SdkMessageProcessingStepId에 대한 자세한 정보를 얻기 위해 시도했지만 나는 테이블에서 아무것도 찾을 수 없습니다.

나는 사용자의 역할이 ObjectTypeCode2020에 대한 적절한 액세스 권한을 갖고 있으며이 방법으로 다른 환경 (TEST)에서 잘 작동하는지 확인했습니다.

서식을 지정해 주셔서 죄송합니다. 나는 읽을 수 있도록 최선을 다했습니다.

+0

대기열 항목을 검색하기 위해 플러그인에있는 코드를 말할 수 있습니까? –

+0

저는이 CRM 솔루션에 100 % 익숙하지 않습니다. 언급 한 SdkMessageProcessingStepId의 ID를 사용하여 더 많은 정보를 얻으려고했습니다. 나는 SQL 테이블을 직접 질의했고이 ID로 레코드를 찾지 못했습니다. –

답변

1

오류가 분명하다 :

SecLib :: AccessCheckEx이이 권한 오류

을 의미

실패 ObjectTypeCode : 2020

포함 된 개체를, 이 경우 Queue

는 AccessRights : ReadAccess

없는 권한, 읽기

CallingUser이 경우 :

사용자 ID a6e65698-DAA2-e211-bd17-0050569512fe 그 이 권한이 없습니다.

+0

나는 그것을 볼 수있다. 그러나 사용자가 속한 보안 역할에 대해 두 환경 모두에서 읽기 권한은 "사용자"로 설정됩니다. 하나는 생산하지만 다른 생산 업체는 그렇지 않습니다. –

+0

레코드 소유자가 팀인 경우 해당 사용자가 해당 레코드에 액세스하기에 "사용자"권한으로 충분합니까? 특권을 높이려고 했습니까? –

+0

오른쪽의 소유자 유형 ID 9는 실제로 팀입니다. 아마도 해당 팀에 대기열 레코드에 대한 읽기 권한이 충분하고 사용자가 팀에 속하는지 확인해야합니다. –