Asp.net 使用webclient下载文件会导致;“拒绝访问路径”;

Asp.net 使用webclient下载文件会导致;“拒绝访问路径”;,asp.net,webclient-download,Asp.net,Webclient Download,我有一个按钮,单击该按钮我想在本地pc上下载文件,我正在使用webclient.downloadfile(),但我得到以下错误: Access to the path 'C:\Windows\SysWOW64\inetsrv\ms-banner.gif' is denied. 我正在使用以下代码下载文件: WebClient client = new WebClient(); client.DownloadFile(new Uri("http://www.contoso.com

我有一个按钮,单击该按钮我想在本地pc上下载文件,我正在使用webclient.downloadfile(),但我得到以下错误:

Access to the path 'C:\Windows\SysWOW64\inetsrv\ms-banner.gif' is denied.
我正在使用以下代码下载文件:

WebClient client = new WebClient();
        client.DownloadFile(new Uri("http://www.contoso.com/library/homepage/images/ms-banner.gif"), "ms-banner.gif");

我不明白为什么它从本地服务器获取文件,因为我已经说明了远程uri

它从远程服务器获取文件,但试图将其保存在当前目录中,因为您只指定了一个相对文件名作为第二个参数:
“ms banner.gif”
。而且您运行应用程序的帐户似乎没有写入当前工作目录的权限,该目录恰好是
C:\Windows\SysWOW64\inetsrv

因此,基本上有两种可能性:

  • 修改正在运行应用程序的帐户,并授予其写入此目录的权限
  • 指定另一个位置(作为绝对路径)以将文件保存到运行应用程序的帐户具有写入权限的位置

contoso.com重定向到microsoft.com。。。URL中的路径不存在,您将无法下载它。我不知道为什么它试图去你的本地机器,但你有没有尝试过其他网站上的一些其他图像?比如说?

+1-我认为他应该直接指定一个合适的,而不是盲目地把东西塞进Windows。我有两个域,比如abc.com和xyz.com,都在同一台服务器上,都指向IIS中的同一个文件夹,现在我在那个目录中有一个文件,如果用户点击abc.com并单击“下载”按钮,则文件应从xyz.com域下载,最好的方法是什么。@Abbas,在ASP.NET应用程序中,您可以使用Request.Url属性获取当前请求Url。从这里开始,您可以提取域并附加必要的位以到达您要下载的文件。下载文件的url是静态url,我是说xyz.com/download/filename.pdf,将文件下载到客户端计算机的代码可能是什么,例如xls导出。
client.DownloadFile(新Uri("http://xyz.com/download/filename.pdf”,“c:\path\to\where\you\want\to\store\the\file\filename.pdf”);
我有两个域,比如abc.com和xyz.com,都在同一台服务器上,都指向IIS中的同一个文件夹,现在我在该目录中有一个文件,如果用户点击abc.com并单击“下载”按钮,那么文件应该从xyz.com域下载,那么最好的方法是什么。