该问题通常是由于使用文件上传控件时未正确设置路径或未授权 ASP.NET 访问本地 PC 文件系统所致。 解决方法有以下几种:
方法一:使用文件路径设置
确保文件上传控件的路径正确设置。例如,下面的代码演示了如何设置文件路径:
if (fileUpload.HasFile) {
string filename = Path.GetFileName(fileUpload.FileName);
fileUpload.SaveAs(Server.MapPath("~/uploads/") + filename);
}
方法二:使用命令行访问授权
打开命令行并将其运行为管理员。使用以下命令列出授权策略:
netsh http show urlacl
此命令将返回授权列表。检查是否存在端口为 port 的授权。如果找到授权,则删除它:
netsh http delete urlacl url=http://localhost:port/
接下来,重新注册授权以允许 ASP.NET 访问文件系统:
netsh http add urlacl url=http://localhost:port/ user=Everyone
方法三:添加 IIS_IUSRS 组
在 IIS 中选择应用程序池,右键点击该应用程序池,选择“高级设置”。在“进程模型”下,设置使用自定义帐户,然后选择“设置”并输入 IIS_IUSRS 组的名称。
完成后,将该文件夹的权限设置为 IIS_IUSRS 可以读写。