I have created an application with a remote MySql database. When i run the project on the
localhost, everything works fine.
Once I publish the project, and test the website, I keep getting an access denied error when i try to upload an image.
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();
I then get the following error::
<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
What I have tried:
I have already gone over the folder permissions, even on the FTP site, just because I was running out of answers. I have been on so many forums and Q&A but I am just not finding what I am missing.