2010-06-08 3 views
1

Я только что установил Dynamics CRM 4.0. Он отлично работает, за исключением рабочих процессов. Они не начнут. Я включил трассировку, и кажется, что есть ошибка ввода-вывода. Сервер настроен с использованием 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) 

Единственное, что я пытался обновить AsyncSdkRootDomain строку в таблице развертывания, чтобы соответствовать ADSdkRootDomain и значения ADApplicationRootDomain. Это было пусто. Казалось, что это не работает.

После нескольких исследований я думаю, что это может быть вызвано тем, что служба Asynch не может получить доступ к веб-службам SDK с использованием SSL. Если это правильно, как настроить CRM-сервер для безопасного доступа, как внутреннего, так и внешнего (IFD), и разрешить асинхронный сервис удалять веб-сайт?

Благодарим за помощь!

ответ

1

Я понял это ... в основном. Это связано с тем, что сайт CRM защищен через SSL, как для внутренних пользователей, так и для внешних (через IFD).

Решение не является идеальным, но оно близко. Веб-сайт настроен с сертификатом, но он обеспечивает незащищенные соединения. Используя инструмент развертывания IFD, как внутренний, так и внешний доступ использует HTTPS. У нас есть запись DNS для внутреннего доступа, поэтому она соответствует сертификату (мы не используем имя машины). AsynchSdkRootDomain пуст (в базе данных DeploymentProperties). Это означает, что он должен использовать IP обратной связи (127.0.0.1). Запись реестра, ServerURL устанавливается как имя машины + порт в качестве пути (http://machine-name:80/MSCRMServices). А LocalSdkPort установлен в 443. Это не имеет смысла, но он работает.

Смежные вопросы