簡體   English   中英

有關CRM錯誤的更多詳細信息:“解決方案清單導入:失敗”

[英]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.completedonnull ,該作業仍在運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM