ASP将Exelfile upload到Web错误:Microsoft Office Access数据库引擎无法打开或写入文件

在我的应用程序中,我尝试将Excel数据文件从本地计算机上传到SQL数据库,然后再上传到web somee.com服务器。 我在本地testing了一切正常。 当我在服务器机器上部署应用程序并尝试运行后,出现“Microsoft Office Access数据库引擎无法打开或写入文件”的错误,它已经由另一个用户专门打开,或者需要权限才能查看和写它的数据“,我尝试在我的excel文件所在的文件夹UploadExcel上授予NETWORK SERVICE帐户修改权限;不幸的是,它不起作用。

ASPX.CS:

static string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; public static string path = @"C:\UploadExcel\Sheet1.xls"; public static string connStexcelConnectionStringr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;"; protected void Page_Load(object sender, EventArgs e) { txtTime.Attributes.Add("readonly", "readonly"); string department_login = ""; bool check_login = authenticate.isAuthenticated(); if (check_login == false) { Response.Redirect("SPC_HP_trangdangnhap.aspx"); } if (!this.IsPostBack) { string username = Session["UserId"].ToString(); department_login = authenticate.authenticateLogin(username); if (!department_login.Equals("Kế toán")) { Response.Redirect("SPC_HP_trangdangnhap.aspx"); } else { BindGrid(); } } } private void BindGrid() { DateTime Day_Today = DateTime.Today; string today = Day_Today.ToString("yyyy-MM-dd"); String strCmd = ""; DataSet ds = new DataSet(); strCmd += "SELECT ProductSPCCode, MaterialNameDB, ProductUnitStock, REPLACE(CONVERT(varchar,CONVERT(Money, ProductTypeA),1),'.00','') AS ProductTypeA, REPLACE(CONVERT(varchar,CONVERT(Money, ProductTypeB),1),'.00','') AS ProductTypeB "; strCmd += "FROM ProductStockTemp "; strCmd += "WHERE ProductStockTime = '"+ today + "'"; using (SqlConnection con = new SqlConnection(constr)) { con.Open(); SqlCommand cmd = new SqlCommand(strCmd, con); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); con.Close(); if (ds.Tables[0].Rows.Count == 0) { ds.Tables[0].Rows.Add(ds.Tables[0].NewRow()); grdProductStock.DataSource = ds; grdProductStock.DataBind(); int column_count = grdProductStock.Rows[0].Cells.Count; grdProductStock.Rows[0].Cells.Clear(); grdProductStock.Rows[0].Cells.Add(new TableCell()); grdProductStock.Rows[0].Cells[0].ColumnSpan = column_count; grdProductStock.Rows[0].Cells[0].Text = "Chưa có tồn kho!"; } else { grdProductStock.DataSource = ds; grdProductStock.DataBind(); } } } protected void btnUpload_Click(object sender, EventArgs e) { string excelConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HRD=YES;IMEX=1'", fupExcel.PostedFile.FileName); string timeJ = txtTime.Text; string time = DateTime.ParseExact(timeJ, "dd'/'MM'/'yyyy", CultureInfo.InvariantCulture).ToString("yyyy'-'MM'-'dd"); DateTime.ParseExact(time, "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime Day_Today = DateTime.Today; string today = Day_Today.ToString("yyyy-MM-dd"); string file_Path = fupExcel.PostedFile.FileName; string file_name = Path.GetFileName(file_Path); string ext = Path.GetExtension(file_name); string type = String.Empty; if (!fupExcel.HasFile) { Response.Write("<script language='javascript'>alert('Xin chọn file Excel!!!')</script>"); return; } else if (fupExcel.HasFile) { switch (ext) { case ".xls": type = "application/vnd.ms-excel"; break; /*case ".xlsx": type = "application/vnd.ms-excel"; break;*/ } if (type != String.Empty) { try { using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd_delete = new SqlCommand("DELETE FROM ProductStockTemp WHERE ProductStockTime = '"+ time +"'")) { cmd_delete.Connection = con; con.Open(); cmd_delete.ExecuteNonQuery(); } con.Close(); con.Dispose(); } } catch (Exception ex) { throw ex; } using (OleDbConnection connection = new OleDbConnection(connStexcelConnectionStringr)) { OleDbCommand command = new OleDbCommand(("Select *,'" + time + "' as [productTime] FROM [Sheet1$]"), connection); connection.Open(); using (DbDataReader dr = command.ExecuteReader()) { using (SqlBulkCopy bulkCopy = new SqlBulkCopy(constr)) { bulkCopy.DestinationTableName = "ProductStockTemp"; bulkCopy.ColumnMappings.Add("productTime", "ProductStockTime"); bulkCopy.ColumnMappings.Add("MÃ HÀNG", "ProductSPCCode"); bulkCopy.ColumnMappings.Add("TÊN HÀNG", "MaterialNameDB"); bulkCopy.ColumnMappings.Add("ĐVT", "ProductUnitStock"); bulkCopy.ColumnMappings.Add("LOẠI A", "ProductTypeA"); bulkCopy.ColumnMappings.Add("LOẠI B", "ProductTypeB"); try { bulkCopy.WriteToServer(dr); Response.Write("<script language='javascript'>alert('Dữ liệu tồn kho Excel đã nhập vảo CSDL thành công!!!')</script>"); BindGrid(); } catch (Exception ex) { throw ex; } finally { dr.Close(); } } } } } else { Response.Write("<script language='javascript'>alert('Xin chọn file Excel có phần mở rộng .xls!!!')</script>"); return; } } } /* Method to exit */ protected void imgExit_Click(object sender, ImageClickEventArgs e) { Response.Redirect("KT_trangchu.aspx"); } } 

}