WebClient.下载文件在本地工作,但不能在服务器WS2008 R2 IIS7上工作



var inputPath = "file:" + fileName.Replace(@"", @"/");
var uri = new Uri(inputPath);
var client = new WebClient();
client.DownloadFile(uri, downloadPath);

带filename的"file://*"直接在浏览器中打开。

文件被安置在服务器上,可以在VS2012中使用我的localhost从DEBUG运行时访问和下载,但是当我在浏览器中输入连接到DEV服务器版本时,它不会下载文件。

应用程序池以我的名字运行,因为我无法让应用程序池在AppPoolIdentity下工作。我有文件夹路径的文件位置的完全控制。ANONYMOUS和Everyone也是,以防这是一个安全问题。

因为它是一个DEV盒子,我甚至完全删除了防火墙,看看防火墙是否阻止了下载。

当我从Chrome浏览器和F12运行时,我可以看到代码部分的状态码为200 'OK',当下载文件运行时,所以没有错误,它只是不保存到我的下载路径位置。

这可能是代理设置问题:

<configuration>
 <system.net>
  <defaultProxy>
   <proxy
    usesystemdefaults="true"
    proxyaddress="http://192.168.1.10:3128"
    bypassonlocal="true"
   />
   <bypasslist
    <add address="[a-z]+.contoso.com" />
   </bypasslist>
  </defaultProxy>
 </system.net>

见此处设置

或者您可以使用fiddler检查问题

经过大量的寻找,我找到了一个对其他人来说可能很明显的工作。我试图使用ajax调用来调用Action来下载文件。这似乎只是坐,但没有错误,所以在F12一旦我点击调用显示在日志文件下载。

我已经将我的进程移动到使用href的"http://ip/website/action?fileName=" + fileName

这将使用浏览器的默认下载功能,因此它适用于Chrome和IE。我还没试过Firefox

最新更新