我有一个 ASP.NET Web 表单网站。当我按下上传按钮时,此代码运行。这段代码有很多问题。它不是快速和简单的,它有一个大问题。第一次上传图片,效果很好,但是当我想替换文件时返回Access denied
错误。我在 IIS express 上有这个错误,但它在Visual Studio开发服务器上正常工作。
注意:我有显示必须更改哪个用户图像的网格视图;这个网格视图还可以帮助我找到特定的用户图像文件。
if (UsersImageFileUpload.HasFile && UsersImageFileUpload.PostedFile.ContentType.StartsWith("image"))
{
string filename = UploadUsersImageGridView.SelectedRow.Cells[1].Text.ToString();
if (!File.Exists(Server.MapPath("~/App_Data/Backups/" + filename)))
{
UsersImageFileUpload.PostedFile.SaveAs(Server.MapPath("~/App_Data/Users/") + filename);
}
else if (File.Exists(Server.MapPath("~/App_Data/Backups/" + filename)))
{
File.Delete(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)"));
UsersImageFileUpload.PostedFile.SaveAs(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)"));
File.Replace(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)"), Server.MapPath("~/App_Data/Users/") + filename, Server.MapPath("~/App_Data/Backups/"));
File.Delete(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)"));
}
}
}
错误标题:Server Error in '/' Application
。
错误第二个标题:The process cannot access the file 'D:\Website\App_Data\Users\1-fullname' because it is being used by another process.
错误描述:An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
错误详情:System.IO.IOException: The process cannot access the file 'D:\App_Data\Users\1-fullname' because it is being used by another process
我的问题:
- 我的代码有什么问题?
- 为什么 IIS 返回该错误(拒绝访问文件)?
- IIS Express 8 和 Visual Studio 2012 开发服务器之间最重要的区别是什么?
- 任何更快的方法来创建上传和替换?
- 有什么更好的形式来拥有这个系统?