Я добавил службы развертывания и обнаружения CRM 2011 (локальные) в качестве веб-ссылки (вместо ссылок wcf) в проект библиотеки классов .Net 3.0, который является частью многоуровневого решения, которое находится в .Net 2.0 (и для в настоящее время нельзя обновить, и поэтому я пытаюсь использовать службу wcf как веб-службу и использовать ее базовую привязку http). Библиотека классов, также известная как удаленная библиотека, выполняется на удаленном сервере, скажем, в удаленной библиотеке, с использованием удаленного взаимодействия .Net. Я использую следующий код для создания организации CRM 2011.
_CrmDeployService = New DeploymentService()
_CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12
_CrmDeployService.Url = CRMDeploymentServiceURl
_CrmDeployService.Credentials = DomainCredentials
' Do all sorts of Active Directory STuff,
'which is successfull
'Now Creat eCRM organization
Dim CRMOrg As CRM2011DeploymentSvc.Organization = New CRM2011DeploymentSvc.Organization()
CRMOrg.UniqueName = OrgUniqName
CRMOrg.FriendlyName = OrgDispName
CRMOrg.SqlServerName = SQLServerName
CRMOrg.SrsUrl = ReportServerUrl
CRMOrg.BaseCurrencyCode = CurrencyCode
CRMOrg.BaseCurrencyName = CurrencyName
CRMOrg.BaseCurrencySymbol = ""
CRMOrg.State = CRM2011DeploymentSvc.OrganizationState.Enabled
'Initialize Request Object to Send CRM Organization Request and set properties
Dim req As New BeginCreateOrganizationRequest() With {.Organization = CRMOrg}
_CrmDeployService.Timeout = 720000
'Execute deployment service given createrequest object
Dim _
resp As BeginCreateOrganizationResponse = _
TryCast(_CrmDeployService.Execute(req), BeginCreateOrganizationResponse)
Приведенный выше код отлично работает, когда я выполняю его в отдельном приложении. Однако, когда я пишу тот же код в части библиотеки удаленных классов проекта, операция продолжается более 15 минут, а затем возвращается и отображается следующее сообщение от службы CRM.
Тайм-аут операции
Я очень уверен, что нет никаких проблем с удаленными звонками. Я использую удаленные вызовы во всем своем решении, и проблем с сериализацией также нет.
Кроме того, ранее я пытался вызвать службу CRM 2011, не указывая версию протокола soap12, и получал следующую ошибку:
HTTP/1.1 415 Невозможно обработать сообщение, так как тип содержимого 'text/xml; charset=utf-8» не был ожидаемым типом «application/soap+xml; кодировка=utf-8'.
Поэтому я добавил следующую строку в свой код:
_CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12
и проблема ушла, но теперь у меня проблема с тайм-аутом.
Вопрос: это проблема с настройками CRM на сервере или настройками времени ожидания HTTP на сервере или настройками службы WCF на сервере, или я все делаю неправильно? Если есть проблема с кодом, предложите, как мне это сделать.
Если требуется какая-либо конфигурация или настройки, также сообщите об этом.
Ответы очень ценятся.
Спасибо.