C# 对路径的访问被拒绝。。。为什么?
整个上午都有ASP.NET问题,现在我有了一个新的问题,就是这个C# 对路径的访问被拒绝。。。为什么?,c#,asp.net,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");
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”]
来自此代码
我检查了该文件夹的权限,它们与我根目录中的其他文件夹具有相同的权限
有什么建议吗
我在代码隐藏之间运行了此代码,以查看该文件是否存在
if(File.Exists(filepath)){
}
它运行页面时没有出现错误,但页面的任何功能都不工作,这告诉我文件路径不存在。对该路径的访问可能被拒绝,因为它可能不存在。在将文件炸成Response.WriteFile
之前,您至少应该先执行一次检查,看看该文件是否存在。这也将给你一个机会,确保它试图得到的路径将工作
还要记住,它不会知道您在web应用程序范围内工作的“相对”路径。您应该确保使用Server.MapPath
或某些配置设置来确保filepath
变量看起来像操作系统上的绝对路径,例如E:\Inetpub\wwwroot\…
清除缓存并重新打开浏览器,特别是,如果您在同一浏览器窗口中测试了一段时间。这为我修复了相同的问题。您检查了文件夹,但是否检查了要下载的单个文件,以查看其是否具有正确的权限?因此是否引发了拒绝访问异常?或者是写入控制台时出错?检查响应.WriteFile
在哪个用户(Environment.UserName)下运行,以及文件路径
的确切值(可能会映射到您期望的其他路径)。您知道此代码允许在您的网站中下载任意文件,对吗?