求解决 c# 数据备份与还原 异常:只能终止用户进程

求解决 c# 数据备份与还原 错误:只能终止用户进程
备份没有问题,还原页面报错:只能终止用户进程。

附上还原代码及页面,求大神改正。。。。。。

代码:


public partial class 页面_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            Button1.Enabled = false;
        }
        else
        {

        }
    }

    private void HuanYuan()
    {
        //还原SqlServer数据库:
        string path = this.FileUpload1.PostedFile.FileName; //获得备份路径及数据库名称 
        string SqlStr1 = System.Web.Configuration
        .WebConfigurationManager
        .ConnectionStrings["GRIDConnectionString1"]
        .ConnectionString;
        string SqlStr2 = "use master restore database GRID from disk='" + path + "'";
        SqlConnection con = new SqlConnection(SqlStr1);
        con.Open();
        try
        {
            SqlCommand com = new SqlCommand(SqlStr2, con);
            com.ExecuteNonQuery();
            Label1.Text = "还原数据成功!";
            Button1.Enabled = false;
        }
        catch (Exception error)
        {
            Label1.Text = "还原数据失败!<br>" + error.Message;
        }
        finally
        {
            con.Close();
        }
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        //HuanYuan();

        //杀死所有访问该数据库的进程
        string conStr = @"data source=ADMIN-PC;database=GRID;user id=sa;password=sa";
        SqlConnection con = new SqlConnection(conStr);
        string cmdText = String.Format("EXEC sp_KillThread @dbname='{0}'", "master");
        SqlCommand com = new SqlCommand(cmdText, con);
        try
        {
            con.Open();
            com.ExecuteNonQuery();
            con.Close();
            //恢复数据库 
            GoBack();
        }
        catch (Exception ex)
        {
            con.Close();
            this.Label1.Text = ex.Message;
        }
    }

    private void GoBack()
    {
        string path = this.FileUpload1.PostedFile.FileName; //获得备份路径及数据库名称 
        SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
        SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
        try
        {
            oSQLServer.LoginSecure = false;
            oSQLServer.Connect(@".", "sa", "sa");
            oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;