CRM 2011 (オンプレミス) 展開および検出サービスを、.Net 2.0 (および当分の間アップグレードできないため、wcf サービスを Web サービスとして使用し、その basichttpbinding を使用しようとしています)。クラス ライブラリ別名はリモート サーバーで実行されます。たとえば、リモート ライブラリを .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サービスから以下のメッセージが返ってきて表示されています
操作タイムアウト
リモート呼び出しに問題がないことは確かです。ソリューション全体でリモート呼び出しを使用していますが、シリアル化の問題もありません。
また、以前、 soap12プロトコル バージョンを指定せずに CRM 2011 サービスを呼び出そうとしましたが、次のエラーが発生しました。
HTTP/1.1 415 コンテンツ タイプが 'text/xml; であるため、メッセージを処理できません。charset=utf-8' は、予期されたタイプ 'application/soap+xml;' ではありませんでした。charset=utf-8'.
だから私は自分のコードに次の行を追加しました:
_CrmDeployService.SoapVersion = SoapProtocolVersion.Soap12
問題はなくなりましたが、今ではこのタイムアウトの問題があります。
質問: これは、サーバーでの CRM 構成またはサーバーでの HTTP タイムアウト設定またはサーバーでの WCF サービス設定に問題があるのでしょうか、それともすべて間違っているのでしょうか? コードに問題がある場合は、どのようにすべきかを提案してください。
何らかの構成や設定が必要な場合は、その旨もお知らせください。
回答をお待ちしております。
ありがとうございました。