Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSIS包中的WebClient(C#脚本)下载文件_C#_Ssis - Fatal编程技术网

使用SSIS包中的WebClient(C#脚本)下载文件

使用SSIS包中的WebClient(C#脚本)下载文件,c#,ssis,C#,Ssis,我正在尝试下载SSIS包中带有C#的文件()。它将不适用于此文件!我可以下载其他文件,包括xlsx文件,但当我指向这个特定的文件时,它就不起作用了 我可以在VisualStudio的C#控制台应用程序中使用完全相同的脚本,它将完美地下载文件。我想让它在SSIS C#脚本任务中工作。请帮忙 这是我正在使用的C#: using (var client = new WebClient()) { client.DownloadFile("https://www2.optimalblu

我正在尝试下载SSIS包中带有C#的文件()。它将不适用于此文件!我可以下载其他文件,包括xlsx文件,但当我指向这个特定的文件时,它就不起作用了

我可以在VisualStudio的C#控制台应用程序中使用完全相同的脚本,它将完美地下载文件。我想让它在SSIS C#脚本任务中工作。请帮忙

这是我正在使用的C#:

using (var client = new WebClient()) { 
    client.DownloadFile("https://www2.optimalblue.com/Metrics/OPTIMAL%20BLUE%20MORTGAGE%20MARKET%20INDICES%20(OBMMI).xlsx", 
    @"c:\files\ObFile.xlsx");
 }
下面是我运行脚本任务时在SSIS中给我的错误消息:

位于System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[]) 参数、签名sig、布尔构造函数)位于 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象obj, 对象[]参数,对象[]参数)位于 System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,绑定器绑定器,对象[]参数,CultureInfo区域性)
在System.RuntimeType.InvokeMember处(字符串名称,BindingFlags bindingFlags、绑定器绑定器、对象目标、对象[]提供的参数、, ParameterModifier[]修饰符,CultureInfo区域性,字符串[] 命名参数)在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.vstatasksscriptingEngine.ExecuteScript()


你需要一个符号吗@“c:\files\ObFile.xlsx”我添加了“@”,但仍然收到相同的错误。不过我很抱歉,C#脚本实际上是指向网络共享,出于某种原因不需要“@”。但是当我指向我的C驱动器时,@是必需的。我将修改我的问题并包括“@”(以及我指向C驱动器的代码,因此所有内容都与我的问题相同)我从C#运行了你的代码并获得了文件。例外的文化是为什么我认为它可能是符号。网络驱动器文件名有多长?可能是由于文件名太长导致代码失败。试试本地司机。我见过一些错误,其中网络驱动器是Unix机器上的文件服务器,但出现了故障。我的错误是由从Windows计算机压缩网络驱动器上的文件引起的。这样文件就无法在windows中打开。Unix计算机上的扇区/分区出现问题。我怀疑您的情况与文件名(%20)中的空格有关。我现在使用的是本地C驱动器。它仍然不起作用。这很奇怪,因为我可以指向互联网上的另一个文件并获取该文件。我可以在我的SSIS包之外运行它(相同的代码),并获得我想要的文件。但它在SSIS的脚本组件中不起作用。他们会使用不同版本的WebClient吗?(我一点也不懂C#,我只是在谷歌上搜索和猜测)使用像wireshark或fiddler这样的嗅探器。比较第一个请求中工作和非工作的头。此外,还应检查所使用的TLS版本。听起来这可能是用于身份验证的TLS问题。SSI可能正在使用较旧版本的TLS。您希望使用1.2/1.3(而不是1.0/1.0)。请参阅:这是旧的,请确保使用)。也。