Как обойти проблему отказа в доступе при загрузке изображения из веб-приложения?
Я создал приложение с удаленной базой данных MySql. Когда я запускаю проект на localhost, все работает нормально.
Как только я публикую проект и тестирую веб-сайт, я постоянно получаю ошибку отказа в доступе, когда пытаюсь загрузить изображение.
connection.Open(); string filePath = Path.GetFileName(oFile.PostedFile.FileName.ToString()); string uploadPath = Server.MapPath("~/upload"); oFile.PostedFile.SaveAs(Path.Combine(uploadPath, oFile.PostedFile.FileName)); string sql = "INSERT INTO `database`.`table` (image) VALUES (@file)"; using (var cmd = new MySqlCommand(sql, connection)) { cmd.Parameters.AddWithValue("@file", File.ReadAllBytes(uploadPath + "\\" + filePath)); cmd.ExecuteNonQuery(); } connection.Close();
Затем я получаю следующую ошибку::
<pre lang="HTML">Access to the path 'E:\www\website\website\wwwroot\upload\Image-01.jpg' is denied. Description: 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. Exception Details: System.UnauthorizedAccessException: Access to the path 'E:\www\website\website\wwwroot\upload\Image-01.jpg' is denied. ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user. To grant ASP.NET access to a file, right-click the file in File Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [UnauthorizedAccessException: Access to the path 'E:\www\premileh\website\wwwroot\upload\Image-01.jpg' is denied.] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +417 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +1217 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +130 System.IO.FileStream..ctor(String path, FileMode mode) +97 System.Web.HttpPostedFile.SaveAs(String filename) +96 application.ItemUploadPage.ImageUploader()in C:\Users\folder\folder\folder\folder\folder\folder\folder\folder.aspx.cs:133 app.apppage.UploadBtn_Click(Object sender, EventArgs e) \Users\folder\folder\folder\folder\folder\folder\app \ItemUploadPage.aspx.cs:97 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11758848 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+150 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) +5028
Что я уже пробовал:
Я уже проверил права доступа к папкам, даже на FTP-сайте, только потому, что у меня заканчивались ответы. Я был на стольких форумах и вопросах и ответах, но я просто не нахожу того, что мне не хватает.