【问题标题】:Downloading file using webclient results in "Access to the path denied is denied"使用 webclient 下载文件导致“拒绝访问路径被拒绝”
【发布时间】:2012-03-12 23:05:44
【问题描述】:

我有一个按钮,单击该按钮我想在本地电脑上下载文件,我正在使用 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

【问题讨论】:

    标签: asp.net webclient


    【解决方案1】:

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

    所以你基本上有两种可能性:

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

    【讨论】:

    • +1 - 我认为他应该直接指定适当的,而不是盲目地将东西推入 Windows。
    • 我有 2 个域说 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(new Uri("http://xyz.com/download/filename.pdf"), "c:\path\to\wherever\you\want\to\store\the\file\filename.pdf");
    【解决方案2】:

    contoso.com 重定向到 microsoft.com...您在 URL 中的路径不存在,您将无法下载它。我不确定它为什么要尝试转到您的本地计算机,但是您是否尝试过其他网站上的一些 other 图像?比如http://i.cdn.turner.com/cnn/.e/img/3.0/global/header/hdr-main.gif

    【讨论】:

    • 我有 2 个域说 abc.com 和 xyz.com,它们都在同一台服务器上,都指向 IIS 中的同一个文件夹,现在我在该目录中有一个文件,如果用户点击 abc。 com 并单击下载按钮,然后文件应该从 xyz.com 域下载,这可能是最好的方法。
    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多