我有一个SSIS工作,在其任务之一中,我使用脚本任务(C#代码)尝试从给定网站下载CSV文件(使用WebClient.DownloadFile
方法)以供后续阶段处理。
每次下载CSV都会失败,因此在尝试调查This Blog时遇到的问题时,发现当CSV文件的网址中包含Vary: negotiate
和Pragma: no-cache
时响应标题然后下载失败。 IE8是主机服务器上可用的IE的最新版本,所以我对此没有发言权。尝试使用IE8下载CSV文件时显示以下错误:
尝试下载CSV文件时的响应标头:
当我使用以下过滤器运行Fiddler时,CSV的下载按预期在IE8中运行:
所以我的问题是如何使用WebClient.DownloadFile
执行此操作?我看着Fiddler.Core,但无法弄清楚如何做到这一点。我还调查了使用:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\PROGRA~1\Fiddler2\Fiddler.exe";
但上述方法的问题在于,当调用Process.Kill()时,Fiddler没有机会自行清理并留下其代理等等导致其他应用程序的连接中断。
有人能告诉我如何处理这种情况吗?谢谢
答案 0 :(得分:0)
.NET WebClient实现不受上面引用的IEInternals博客文章中描述的限制。 WebClient直接基于套接字,而不是WinINET。您的问题与这些标题无关。