访问上传​​excel文件时拒绝的路径

上传excel文件时,我收到此错误,有人可以帮助我吗?

访问路径’C:\ Data \ IronElements \ Upload \ AUMData \ 20101202 031815.xlsx’被拒绝。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

exception详细信息:System.UnauthorizedAccessException:拒绝访问路径“C:\ Data \ IronElements \ Upload \ AUMData \ 20101202 031815.xlsx”。

ASP.NET无权访问所请求的资源。 考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(通常是IIS 5上的{MACHINE} \ ASPNET或IIS 6上的网络服务),如果应用程序未模拟,则使用该标识。 如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份validation的请求用户。

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择“属性”,然后选择“安全”选项卡。 单击“添加”以添加适当的用户或组。 突出显示ASP.NET帐户,并选中所需访问的框。

来源错误:

在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。

我的代码隐藏文件具有以下语法

DateTime date = DateTime.Now; string FileName = Convert.ToString(date.ToString("yyyyMMdd hhmmss")); Directory.CreateDirectory("C:\\Data\\IronElements\\Upload\\AUMData\\Schema"); doesFileExists("C:\\Data\\IronElements\\Upload\\AUMData\\Schema"); fileUpload.PostedFile.SaveAs("C:\\Data\\IronElements\\Upload\\AUMData\\" + FileName + ".xlsx"); System.Threading.Thread.Sleep(5000); string connectionString = WebConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString; SqlConnection SqlConnect = new SqlConnection(connectionString); try { SqlConnect.Open(); SqlCommand cmdAssetUnderManagement = new SqlCommand("Exec_Insert_AUMAssetValue", SqlConnect); cmdAssetUnderManagement.CommandType = CommandType.StoredProcedure; cmdAssetUnderManagement.ExecuteNonQuery(); } catch (Exception ex) { Response.Write(ex.Message); } finally { SqlConnect.Close(); } lblAUMTA.Visible = true; lblAUMTA.Text = "File Upload Completed"; } private void doesFileExists(string p) { p = string.Concat(p, "\\AUMSchema.xlsx"); if (!File.Exists(p)) { fileUpload.PostedFile.SaveAs("C:\\Data\\IronElements\\Upload\\AUMData\\Schema\\AUMSchema.xlsx"); } } 

确保文件夹C:\ Data \ IronElements \ Upload \ AUMData对IIS执行上下文的用户具有NTFS写入权限。 另外,请确保C:\ Data \ IronElements \ Upload的子文件夹inheritance其父级的权限。 要执行此操作,请单击安全选项卡中的高级按钮 – >更改权限 – >选中使用此对象的可inheritance权限替换所有子对象权限 – >单击确定

您的网络会话运行的帐户没有写入该文件夹的权限。 一旦您向ASP.Net帐户(或您使用的任何帐户)提供所需的权限,它应该按预期工作。

转到您用于此应用程序的应用程序池,并将其身份更改为“网络服务”。 我面对类似的问题并以同样的方式修复

为了更好地处理这样的权限问题,我总是创建一个低权限的用户来运行我们的网站。 用户以网站本身命名,因此显而易见的是它的用途。

然后,该用户只能获取正确文件夹上的权限,在您的情况下,C:\ Data \ IronElements \ Upload \ AUMData。 这也是限制数据库访问的好方法 – 在SQL中为特定用户创建一个具有最小权限的登录。