1

我有一个 SSIS 作业,在它的一个任务中,我使用了一个脚本任务(C# 代码),它试图WebClient.DownloadFile从给定的网站下载一个 CSV 文件(使用方法)以供后续阶段处理。

CSV 的下载每次都会失败,因此在尝试调查此博客的问题时,发现当 CSV 文件的 URLVary: negotiatePragma: 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 没有机会自行清理并留下其代理......等导致其他应用程序的连接中断。

有人能告诉我如何处理这种情况吗?谢谢

4

1 回答 1

0

.NET WebClient 实现不受您在上面引用的我的 IEInternals 博客文章中描述的限制。WebClient 直接基于套接字,而不是 WinINET。您的问题与这些标题无关。

于 2013-02-07T16:09:50.950 回答