SSI通过c#脚本中的webclient下载http文件。非法字符错误,因为源URL有cgi?在小路上
我有一个正在运行的SSIS脚本,它使用一个C#脚本运行一个webclient,从XE.com下载一个货币文件。不幸的是,XE提供的路径有一个cgi调用,因此其中有一个问号,这是一个非法字符,因此我在运行脚本时收到以下消息: System.ArgumentException:路径中存在非法字符 我使用的脚本是根据以下说明改编的: 有没有办法用ASCII码或其他什么来代替问号SSI通过c#脚本中的webclient下载http文件。非法字符错误,因为源URL有cgi?在小路上,c#,ssis,webclient,C#,Ssis,Webclient,我有一个正在运行的SSIS脚本,它使用一个C#脚本运行一个webclient,从XE.com下载一个货币文件。不幸的是,XE提供的路径有一个cgi调用,因此其中有一个问号,这是一个非法字符,因此我在运行脚本时收到以下消息: System.ArgumentException:路径中存在非法字符 我使用的脚本是根据以下说明改编的: 有没有办法用ASCII码或其他什么来代替问号 非常感谢。谢谢你的回复,本。这是一个SSIS脚本任务,代码来自上述指南。最后,我用ASCII码?替换了问号哪个成功了
非常感谢。谢谢你的回复,本。这是一个SSIS脚本任务,代码来自上述指南。最后,我用ASCII码
?替换了问号代码>哪个成功了。
对于未来的读者,相关代码:
public void Main()
{
Variables varCollection = null;
Dts.VariableDispenser.LockForRead("User::RemoteUri");
Dts.VariableDispenser.LockForRead("User::LocalFolder");
Dts.VariableDispenser.GetVariables(ref varCollection);
System.Net.WebClient myWebClient = new System.Net.WebClient();
string webResource = varCollection["User::RemoteUri"].Value.ToString();
string fileName = varCollection["User::LocalFolder"].Value.ToString() + webResource.Substring(webResource.LastIndexOf('/') + 1);
myWebClient.DownloadFile(webResource, fileName);
Dts.TaskResult = (int)ScriptResults.Success;
}
我复制这个有困难。我可以使用.NET4.5.x的WebClient从包含带问号字符串的URI下载,而不会出现问题。您使用的是什么版本的.Net?你能从你的脚本任务中发布代码吗?谢谢,@Loic!我很困惑:“我最后用?来代替问号。”“?”是问号字符!:-)这个字符原来不是“?”吗?嗨,本,这个网站上有一个问号——我用ASCII码来解决这个问题。修正了我的回答。谢谢!您的原始URL是否类似于或(带有两个问号)?