Рабочие процессы не запускаются после новой установки - PullRequest
1 голос
/ 08 июня 2010

Я только что установил 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 Ответ

1 голос
/ 09 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...