我有一个SSIS的工作,在它的任务之一,我使用脚本任务(C#代码),试图从一个给定的网站下载一个CSV文件(使用WebClient.DownloadFile方法),由以后的阶段处理。
CSV的下载每次都会失败,所以在尝试调查这个问题时,我遇到了This Blog,发现当CSV文件的URL的响应头中有Vary: negotiate和Pragma: no-cache时,下载就会失败。IE8是在主机服务器上可用的IE的最新版本,所以我对此没有发言权。尝试使用IE8下载CSV文件时显示以下错误:

尝试下载CSV文件时的响应头:

当我使用以下过滤器运行Fiddler时,CSV的下载在IE8中可以正常工作:

所以我的问题是,我如何使用WebClient.DownloadFile做到这一点?我研究了一下Fiddler.Core,但不知道该怎么做。我还研究了简单地运行Fiddler,使用:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\PROGRA~1\Fiddler2\Fiddler.exe";但上述方法的问题是,当Process.Kill()被调用时,Fiddler没有机会在自身之后进行清理,并留下了它的代理...etc,从而导致其他应用程序的连接中断。
有人能告诉我如何处理这种情况吗?谢谢
发布于 2013-02-08 00:09:51
.NET WebClient实现不会受到您在上面引用的我的IEInternals博客文章中描述的限制。WebClient直接基于套接字,而不是WinINET。您的问题与这些头文件无关。
https://stackoverflow.com/questions/14741421
复制相似问题