Ошибка: 0x1 в XX: исключение было выдано целью вызова - PullRequest
2 голосов
/ 24 мая 2019

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

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

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

В настоящее время моей Target Framework является .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;
    }
}

}

1 Ответ

1 голос
/ 25 мая 2019

Ошибка может быть вызвана проблемой с правами на чтение из 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;

    }

}

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...