[英]More details about CRM error : “Solution manifest import: FAILURE”
我正在使用C#創建CRM的導入/導出工具。 有時,我遇到導入錯誤,在捕獲中僅顯示此消息“ Solution manifest import:FAILURE”。 我試圖將其強制轉換為其類型(FaultException),但沒有更多詳細信息。
如果我直接在CRM中導入同一文件,則會收到一條更好的錯誤消息(例如,該錯誤消息:“解決方案xxxx的導入失敗。您的系統[...]中缺少以下組件”)。
有沒有辦法得到這個完整的消息?
這是我的代碼:
try
{
_serviceProxy.Execute(impSolReq);
}
catch (Exception ex)
{
if (ex is FaultException<OrganizationServiceFault>)
MessageBox.Show("Error during import. More details: " + ((FaultException<OrganizationServiceFault>)ex).Detail);
else
MessageBox.Show("Error during import. More details: " + ex.Message);
}
感謝您的回答!
Dynamics CRM解決方案是使用ImportSolutionRequest
導入的。
ImportSolutionRequest
具有包含解決方案導入作業的ID的屬性。 您需要此ID才能監視作業進度,並在導入失敗時獲取錯誤詳細信息。
請求的實例化可能如下所示:
Guid importJobId = Guid.NewGuid();
var request = new ImportSolutionRequest
{
ConvertToManaged = true,
CustomizationFile = buffer, // a byte[] array holding the solution contents
ImportJobId = importJobId,
OverwriteUnmanagedCustomizations = true,
PublishWorkflows = true,
SkipProductUpdateDependencies = false
};
執行請求。 發生導入錯誤時,您可以使用作業ID檢索錯誤詳細信息。
try
{
_service.Execute(request);
}
catch (FaultException<OrganizationServiceFault> ex)
{
if (ex.Detail.ErrorCode == -2147188685) // ImportSolutionError
{
Entity job = _service.Retrieve("importjob", importJobId, new ColumnSet { AllColumns = true });
// TODO: process job error details.
}
throw;
}
屬性importjob.data
包含一個XML文檔,其中包含您要查找的詳細信息。
ImportSolutionRequest
是同步執行的,並且很容易超時。 但是,可以安全地忽略超時,因為導入過程繼續在后台運行。 您可以通過定期檢索導入作業記錄來跟蹤進度。 只要屬性importjob.completedon
為null
,該作業仍在運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.