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