2010-06-08 2 views
1

방금 ​​Dynamics CRM 4.0을 설치했습니다. 워크 플로를 제외하고는 잘 작동합니다. 그들은 시작하지 않을 것이다. 추적을 켰고 IO 오류가있는 것 같습니다. 서버가 IFD 및 SSL로 설정됩니다. 내부적으로 또는 외부 적으로 액세스하는 데 문제가 없습니다. 여기에 추적입니다 :새로 설치 한 후에도 워크 플로가 시작되지 않음

# CRM Tracing Version 2.0 
# LocalTime: 2010-06-08 11:34:58.2 
# Categories: 
# CallStackOn: No 
# ComputerName: FOX-CRM1 
# CRMVersion: 4.0.7333.2741 
# DeploymentType: OnPremise 
# ScaleGroup: 
# ServerRole: AppServer, AsyncService, DiscoveryService, WebService, ApiServer, HelpServer, DeploymentService 

[2010-06-08 11:34:58.2] Process:CrmAsyncService |Organization:821a137e-7191-49a4-86cc-69101e2b6d20 |Thread: 24 |Category: Platform.Async |User: 00000000-0000-0000-0000-000000000000 |Level: Error | AsyncOperationCommand.Execute 
>Exception while trying to execute AsyncOperationId: {DF68F483-2C73-DF11-9A34-18A9053B7B38} AsyncOperationType: 1 - System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: The handshake failed due to an unexpected packet format. 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 
    at System.Net.TlsStream.CallProcessAuthentication(Object state) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) 
    at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.ConnectStream.WriteHeaders(Boolean async) 
    --- End of inner exception stack trace --- 
    at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) 
    at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    at Microsoft.Crm.SdkTypeProxy.CrmService.Retrieve(String entityName, Guid id, ColumnSetBase columnSet) 
    at Microsoft.Crm.Asynchronous.SdkTypeProxyCrmServiceWrapper.Retrieve(String entityName, Guid id, ColumnSetBase columnSet) 
    at Microsoft.Crm.Asynchronous.SdkPluginDescriptionProvider.GetPluginTypeDescription(Guid pluginTypeId, IOrganizationContext context) 
    at Microsoft.Crm.Caching.PluginTypeCacheLoader.LoadCacheData(Guid key, IOrganizationContext context) 
    at Microsoft.Crm.Caching.CrmMultiOrgCache`2.CreateEntry(TKey key, IOrganizationContext context) 
    at Microsoft.Crm.Caching.CrmSharedMultiOrgCache`2.LookupEntry(TKey key, IOrganizationContext context) 
    at Microsoft.Crm.Caching.PluginTypeCache.LookupEntry(Guid pluginTypeId, IOrganizationContext context) 
    at Microsoft.Crm.Asynchronous.AsyncOperationCommand.GetPluginType(Guid pluginTypeId) 
    at Microsoft.Crm.Asynchronous.EventOperation.InternalExecute(AsyncEvent asyncEvent) 
    at Microsoft.Crm.Asynchronous.AsyncOperationCommand.Execute(AsyncEvent asyncEvent) 

I가 ADSdkRootDomain과 ADApplicationRootDomain 값과 일치하도록 배포 테이블에서 AsyncSdkRootDomain 행을 업데이트하려고했습니다 유일한 것은. 그것은 비어있었습니다. 그건 효과가없는 것처럼 보였습니다.

더 많은 조사를 한 후에 Asynch 서비스가 SSL을 사용하여 SDK 웹 서비스에 액세스 할 수 없기 때문에이 문제가 발생할 수 있다고 생각합니다. 이것이 맞다면 보안 액세스, 내부 및 외부 (IFD)를 위해 CRM 서버를 구성하고 asynch 서비스가 웹 사이트를 공격 할 수있는 방법은 무엇입니까?

도움 주셔서 감사합니다.

답변

1

나는 이것을 알아 냈습니다 ... 대부분. 이것은 내부 사용자와 외부 (IFD를 통해) 모두 SSL을 통해 보안되는 CRM 사이트와 관련이 있습니다.

이 솔루션은 이상적이지는 않지만 가까운 솔루션입니다. 웹 사이트는 인증서로 설정되어 있지만 비보안 연결을 허용합니다. IFD 배포 도구를 사용하여 내부 액세스와 외부 액세스 모두 HTTPS를 사용합니다. 우리는 내부 액세스에 대한 DNS 항목을 가지고 있으므로 인증서와 일치합니다 (우리는 컴퓨터 이름을 사용하지 않습니다). AsynchSdkRootDomain은 비어 있습니다 (DeploymentProperties 데이터베이스에서). 이는 루프 백 IP (127.0.0.1)를 사용해야 함을 나타냅니다. 레지스트리 항목 인 ServerURL은 시스템 이름 + 포트로 경로 (http://machine-name:80/MSCRMServices)로 설정됩니다. 그리고 LocalSdkPort는 443으로 설정됩니다. 이것은 실제로 의미가 없지만 작동합니다.

관련 문제