下载从http位置的文件,我得到以下错误

问题描述:

方案下载从http位置的文件,我得到以下错误

使用执行脚本任务从HTTP位置下载一个xlsx档案到本地驱动器。

ERROR

错误:为0x1在脚本任务:System.Reflection.TargetInvocationException:异常已被调用的目标抛出。 ---> System.Net.WebException:远程服务器返回一个错误:(401)未经授权。

在System.Net.WebClient.DownloadFile(URI地址,字符串文件名)

在ST_3926c89e45574d05b1869761d015ffc0.csproj.ScriptMain.Main()

---内部异常堆栈跟踪的结尾---

在System.RuntimeMethodHandle._InvokeMethodFast(对象目标,对象[]参数,SignatureStruct & SIG,MethodAttributes methodAttributes,的RuntimeTypeHandle typeOwner)

在System.Refle ction.RuntimeMethodInfo.Invoke(对象OBJ,的BindingFlags invokeAttr,粘结剂粘结剂,对象[]参数,CultureInfo的文化,布尔skipVisibilityChecks)

在System.Reflection.RuntimeMethodInfo.Invoke(对象OBJ,的BindingFlags invokeAttr,粘结剂粘结剂,对象[ ]参数,CultureInfo的培养物)

在System.RuntimeType.InvokeMember(字符串名称,的BindingFlags的BindingFlags,粘结剂粘结剂,对象目标,对象[] providedArgs,ParameterModifier []改性剂,CultureInfo的文化,字符串[] namedParams)

at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

任务失败:脚本任务

警告:0x80019002位于程序包:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数量(1)达到允许的最大值(1);导致失败。当错误数量达到MaximumErrorCount中指定的数量时会发生这种情况。更改MaximumErrorCount或修复错误。

SSIS包“Package.dtsx”已完成:失败。

+1

没有脚本任务代码,我不能更具体,但这里的问题是凭证你运行你的SSIS包下不具有与同时下载XLSX Web服务的授权。你是如何执行这个软件包的,你需要什么凭证来完成这个Web服务? – Eric 2012-01-09 16:46:06

+0

您是否介意查看您的未解决问题,并选择答案或提供更新,解释为什么提出的答案不能解决您的问题? – billinkc 2012-01-09 16:48:11

+0

在这里的代码不能粘贴。我可以在普通的Internet Explorer上打开这个网站。我认为它是同一个用户是SSIS。我怎样才能检查这个?我无法在网站上获取该文件的权限,或者我可以吗? 更改了包的安全级别,但仍然发生。 在管理工作室中运行包提供了同样的错误。 – 2012-01-09 17:02:25

根据您之前(和打开的)question中提供的代码,我认为您需要在HttpWebRequest上设置Credentials属性。不知道您的凭据情况的具体情况,我不能说DefaultCredentials是否会起作用,或者您是否需要提供用户密码&。

wr.Credentials = System.Net.CredentialCache.DefaultCredentials;