访问路径被拒绝...为什么?

时间:2012-06-05 16:54:19

标签: c# asp.net

整个早上都有ASP.NET问题,现在我有一个新问题,用这个

string filepath = "";
filepath = Server.MapPath(Request.QueryString["fileDownloadable"]);
if (filepath != null)
{
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment; filename=MyPDF.pdf");
    Response.WriteFile(filepath);
    Response.ContentType = "";
    Response.End();
}

在第18行给出了一个Response.WriteFile(filepath);的错误,它表示拒绝访问该路径....为什么会这样做?

Request.QueryString["fileDownloadable"]来自此代码...

<li><a href="./DownloadableProducts.aspx?fileDownloadable=/downloadableProducts/MyPDF.pdf" runat="server">IPC Client Personal Financial Website Feb 12</a></li>

我检查了该文件夹的权限,并且他们的根目录中的每个其他文件夹都具有相同的权限。

有什么建议吗?

我在我的代码后面运行了这段代码,看看文件是否存在..

if(File.Exists(filepath)){
}

它运行页面没有错误,但页面的功能没有用,这告诉我文件路径不存在。

1 个答案:

答案 0 :(得分:0)

可能会拒绝访问该路径,因为它可能不存在。在将文件简化为Response.WriteFile之前,您应至少检查文件是否存在。这也将使您有机会确保它尝试获取的路径能够正常工作。

还要记住,它不会意识到您在Web应用程序范围内正在处理的“相对”路径。您应该确保使用Server.MapPath或某些配置设置来确保您的filepath变量看起来像操作系统上的绝对路径,例如E:\Inetpub\wwwroot\...