2010-06-08 78 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.這並沒有意義,但它工作正常。