2010-06-08 75 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) 

我试图在部署表,以匹配ADSdkRootDomain和ADApplicationRootDomain值更新AsyncSdkRootDomain行的唯一的事。它是空白的。这似乎并不奏效。

经过一番研究,我认为这可能是由于Asynch服务无法使用SSL访问SDK Web服务而导致的。如果这是正确的,那么如何配置CRM服务器以实现安全访问,内部和外部(IFD)并仍然允许异步服务访问网站?

感谢您的帮助!

回答

1

我明白了......主要是这样。这与CRM网站通过SSL进行安全保护有关,无论是内部用户还是外部(通过IFD)。

解决方案并不理想,但它非常接近。该网站安装有证书,但它允许非安全连接。使用IFD部署工具,内部和外部访问都使用HTTPS。我们有一个用于内部访问的DNS条目,因此它与证书相匹配(我们不使用机器名称)。 AsynchSdkRootDomain为空(在DeploymentProperties数据库中)。这表明它应该使用回送IP(127.0.0.1)。注册表项ServerURL设置为机器名+端口作为路径(http://machine-name:80/MSCRMServices)。 LocalSdkPort被设置为443.这并没有意义,但它工作正常。