Компонент Microsoft access database engine не может открыть или записать в файл ошибку разрешения
Прежде чем я укажу свою проблему, позвольте мне сказать вам все, что я уже достаточно изучил по этому вопросу через интернет, но ни одна статья не поможет мне решить мою проблему. Проблема в том, что когда я пытаюсь загрузить файл excel и начать его обработку, он выдает ошибку "компонент Microsoft Access database engine не может открыть или записать файл . Он уже открыт исключительно другим пользователем, или вам нужно разрешение на просмотр и запись его данных". Мой код работает правильно на моем локальном компьютере основная проблема возникает, когда я загружаю код на рабочий сервер. Ниже приведен мой код:
Note: I'm using MySql as database. I've also set the permissions to the folder on my server where the file get stored after uploading still the same issue.
Что я уже пробовал:
if (file_Upload_DataFile.HasFile) { string fileName = Path.GetFileName(file_Upload_DataFile.PostedFile.FileName); string fileExtension = Path.GetExtension(file_Upload_DataFile.PostedFile.FileName); if (fileExtension != ".xls" && fileExtension != ".xlsx") { ScriptManager.RegisterStartupScript(this, this.GetType(), "onload", "alert('invalid file format!! you must upload a file having an extention of either (.xls) or (.xlsx)');", true); extFlag = false; } string fileLocation = Server.MapPath("../ExcelReport/" + fileName); file_Upload_DataFile.SaveAs(fileLocation); if (fileExtension == ".xls") { connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; extFlag = true; } else if (fileExtension == ".xlsx") { connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; extFlag = true; } } if (extFlag != false) { OleDbConnection con = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = con; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); //DataSet ds = new DataSet(); DataTable dtExcelRecords = new DataTable(); con.Open(); DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString(); cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "]"; dAdapter.SelectCommand = cmd; dAdapter.Fill(dtExcelRecords); con.Close(); }
Maciej Los
Какие разрешения вы установили?
Rohit Singh
чтение-запись
Maciej Los
Взгляните сюда: Информация: разрешения на подключение к базе данных удаленного доступа из ASP.NET[^]