紧急求助:数据库备份时出现"无法打开备份设备 'e:\aa.bak'。出现操作系统错误 5(拒绝访问。)。"

时间:2021-12-08 16:46:13
源代码 如下:
protected void Page_Load(object sender, EventArgs e)
    {

        SqlConnection sqlcon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["myConnString"]);
        sqlcon.Open();
      string   sqltext = "Exec sp_helpdb";
        SqlCommand sqlcom = new SqlCommand(sqltext ,sqlcon );
        SqlDataReader dr = sqlcom.ExecuteReader();
        DropDownList1.DataSource = dr;
        DropDownList1.DataTextField = "name";
        DropDownList1.DataBind();
        sqlcon .Close ();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection mysqlcon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["myConnString"]);
        mysqlcon.Open();
        string sql = "backup database "+DropDownList1.SelectedItem .Value +" to disk = '"+TextBox1 .Text .Trim ()+".bak'";
        try
        {

        
            if (File.Exists(this.TextBox1.Text.Trim()))
            {
                Response.Write("<script language=javascript>alert ('此文件已存在,请从新输入!');</script>");

                return;

            }
            SqlCommand sqlcomm = new SqlCommand(sql, mysqlcon);
            sqlcomm.ExecuteNonQuery();
            Response.Write("<script language=javascript>alert('备份数据成功!'); </script>");


        }
        catch (Exception ms)
        {
            Response.Write(ms.Message);
            Response.Write("<script language=javascript>alert('备份数据失败!'); </script>");

        }
        finally
        {
            mysqlcon.Close();
        } 
     mysqlcon.Close(); 
    }

5 个解决方案

#1


是不是已经存在aa.bak文件了呢?

#2


你有访问'e:\aa.bak'的权限吗,为什么不放在网站的App_Data目录呢?

#3


是sql那台机器的e:\aa.bak吧?

以前web生成文件的时候有过类似问题,就是你本地测试的文件生成好后,直接放到服务器上,因为换了环境,权限也就不同了,所以不能覆盖或者删除.在服务器端重新生成一次就可以.或者改文件的权限.

用sql备份,应该算是服务器本地操作,应该没问题吧...

#4


这个问题我也想问一下,但是我也有了一点小发现,就是sqlsever2005备份和还原在FAT32上能用,不会出现楼主的错误信息,但是在NTFS上就不行了。还请高人们提点一下这是为什么?

#5


这个问题我也想问一下,但是我也有了一点小发现,就是sqlsever2005备份和还原在FAT32上能用,不会出现楼主的错误信息,但是在NTFS上 的根目录上就不行了。还请高人们提点一下这是为什么?

#1


是不是已经存在aa.bak文件了呢?

#2


你有访问'e:\aa.bak'的权限吗,为什么不放在网站的App_Data目录呢?

#3


是sql那台机器的e:\aa.bak吧?

以前web生成文件的时候有过类似问题,就是你本地测试的文件生成好后,直接放到服务器上,因为换了环境,权限也就不同了,所以不能覆盖或者删除.在服务器端重新生成一次就可以.或者改文件的权限.

用sql备份,应该算是服务器本地操作,应该没问题吧...

#4


这个问题我也想问一下,但是我也有了一点小发现,就是sqlsever2005备份和还原在FAT32上能用,不会出现楼主的错误信息,但是在NTFS上就不行了。还请高人们提点一下这是为什么?

#5


这个问题我也想问一下,但是我也有了一点小发现,就是sqlsever2005备份和还原在FAT32上能用,不会出现楼主的错误信息,但是在NTFS上 的根目录上就不行了。还请高人们提点一下这是为什么?