簡體   English   中英

SSIS 腳本任務 (c#) 在 Visual Studio 中運行良好。 但是當我在 SSMS 中運行它時,它運行成功但什么也沒做

[英]SSIS script task (c#) works in Visual Studio well. But when I run it in SSMS it runs succesfully but does nothing

II 准備了一個簡單的c#腳本,它可以重命名我本地目錄上的文件。 當我在visual studio中運行它時,它成功完成並重命名文件。 下面的代碼;

public void Main()
{
   // TODO: Add your code here
   string path = @"D:\DataFiles\IQVIAData\BrickWeekly\BrickWeeklyData\201226_FACT_ALL_SALES_147.txt";
   string path2 = @"D:\DataFiles\IQVIAData\BrickWeekly\BrickWeeklyData\ASD.txt";
   File.Move(path, path2);
   Dts.TaskResult = (int)ScriptResults.Success;
}

當我執行包含腳本任務的SSIS package 時,從SSMS運行,它說成功完成,但文件仍然具有相同的名稱,並且沒有重命名文件。

這是我在這里發短信之前所做的,

  1. 我允許任何人修改文件夾(完全控制;讀、寫...)(沒用)

在此處輸入圖像描述

  1. 我創建了一個 SSIS 代理,它引用我的管理員帳戶並運行腳本而不是 sql 服務器代理。 (它沒有工作) 在此處輸入圖像描述

  2. 我隨機更改了該路徑不存在的文件夾路徑。 當我運行它時,Visual Studio 給出了如下錯誤; 沒有具有此名稱的文件夾等...這是我所期望的。 之后,我將 package 部署到sql server並從SSMS運行 package 。 但它沒有給我任何錯誤,盡管文件夾路徑有錯誤。 它運行成功。

     public void Main() { // TODO: Add your code here string path = @"D:\DataFiles\IQVIAData\BrickWeekly\BrickWeeklyData\201226_FACT_ALL_SALES_147.txt"; string path2 = @"D:\DataFiles\IQVIAData\BrickWeekly\asdasd\ASD.txt"; File.Move(path, path2); Dts.TaskResult = (int)ScriptResults.Success; }

有什么想法或建議可以解決我的問題嗎?

viusal studio 有問題,可能是設置的問題。 但是我想不通。 我安裝了 Visual Studio 2019 並用它創建了 package。 部署后它工作正常。 感謝您的建議。

正如我在評論中回避的那樣,這可能是問題所在,我認為我應該將其添加為其他任何遇到此問題的人的答案:

當SSIS項目部署到SSIS目錄時,Visual Studio項目中有一個SQL Server版本需要設置。 它位於 Configuration Properties > General 下的項目屬性中,名為 TargetServerVersion。

在此處輸入圖像描述

它應該設置為部署服務器的正確版本。 否則,任務/組件,尤其是腳本任務/組件,可能無法正確 function。 大多數時候它會在服務器上拋出版本錯誤,但我已經看到包成功執行而不執行腳本任務/組件。

在 VS 2019 或 SSIS 擴展的其中一個版本中存在一個錯誤,其中對話框中的 TargetServerVersion 不反映項目實際設置的內容。 從服務器導入 SSIS 項目時會發生這種情況。 我通常將 go 設置為該設置,將其更改為 SQL Server 2019,然后返回到我的目標版本(在本例中為 SQL Server)。 這會強制項目使用正確的版本。

希望這可以幫助。

暫無
暫無

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

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