Ошибка: 0x1 в XX: исключение было выброшено целью вызова

Я пытаюсь скопировать файлы с FTP-сервера на локальный диск с помощью сценария задачи C # в SSIS. Сценарий хорошо работал в SQL Studio 2008 R2, но было обновление версии до 2016 с использованием SQL SSDT (SQL Server Data Tools) 2015, и когда я впервые выполнил сценарий, он работал нормально, но позже выдал следующую ошибку:

Ошибка: 0x1 в 3-Копировать и переименовать файлы EC: исключение было выброшено целью вызова. Ошибка задачи: 3-Скопируйте и переименуйте файлы EC

Я прочитал несколько сообщений и узнал, что респондент решил проблему, добавив ссылку на dll версии 12.0.0 и изменив Target Framework на .Net Framework 4.5.

В настоящее время моей целевой платформой является .Net Framework 4.5.

Как мне перестать получать эту ошибку?

Где в приложении я могу найти ссылку на dll для этого изменения?

Буду признателен за вашу помощь.

Моя программа на C # показана ниже:

using System; 
using System.IO;

namespace ST_d70bfcb8d94b40849d1d525fe3731f14.csproj
{
    [Microsoft.SqlServer

.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{

        #region VSTA generated code
        enum ScriptResults
        {
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion


public void Main()

    {
        string fileDate = string.Format("{0:d4}", DateTime.Today.Year).ToString() + string.Format("{0:d2}", DateTime.Today.Month).ToString() + "13";
        string src1FileName = @"\\Slocation03\Reports\SSI224-069_" + fileDate + ".txt";
        string des1FileName = @"\\Slocation03\Reports\EContacts\SSI224-069.txt";

        string src2FileName = @"\\Slocation03\Reports\SSI224-071_" + fileDate + ".txt";
        string des2FileName = @"\\Slocation03\Reports\EContacts\SSI224-071.txt";

        if (File.Exists(src1FileName))
        {
            File.Copy(src1FileName, des1FileName, true);
        }

        if (File.Exists(src2FileName))
        {
            File.Copy(src2FileName, des2FileName, true);
        }

        Dts.TaskResult = (int)ScriptResults.Success;
    }
}

}

person Sast77    schedule 24.05.2019    source источник


Ответы (1)


Ошибка может быть вызвана проблемой разрешения для чтения из пути UNC или записи в локальный файл, попробуйте добавить блок try ... catch для чтения реального исключения, поскольку следующее исключение является общим:

Исключение было выброшено целью вызова

Попробуйте использовать следующий код:

public void Main()

{
try{

        string fileDate = string.Format("{0:d4}", DateTime.Today.Year).ToString() + string.Format("{0:d2}", DateTime.Today.Month).ToString() + "13";
        string src1FileName = @"\\Slocation03\Reports\SSI224-069_" + fileDate + ".txt";
        string des1FileName = @"\\Slocation03\Reports\EContacts\SSI224-069.txt";

        string src2FileName = @"\\Slocation03\Reports\SSI224-071_" + fileDate + ".txt";
        string des2FileName = @"\\Slocation03\Reports\EContacts\SSI224-071.txt";

        if (File.Exists(src1FileName))
       {
                File.Copy(src1FileName, des1FileName, true);
        }

       if (File.Exists(src2FileName))
        {
            File.Copy(src2FileName, des2FileName, true);
        }

        Dts.TaskResult = (int)ScriptResults.Success;

    }catch(Exception ex){

        Dts.FireError(0,"An error occured", ex.Message,String.Empty, 0);
        Dts.TaskResult = (int)ScriptResult.Failure;

    }

}

Ссылки

person Hadi    schedule 24.05.2019