在SQL Server 2008上以编程方式备份​​数据库失败(但适用于早期版本)

时间:2011-07-08 11:00:12

标签: .net database sql-server-2008 windows-server-2008 database-backups

  

可能重复:
  SQL Server SMO complains of missing DLL

我有以下代码用于备份在SQL Server 2005上使用Windows Server 2003的数据库:

            ServerConnection ServerConn = new ServerConnection();
        try
        {
            ServerConn.ServerInstance = "(local)";
            ServerConn.LoginSecure = true;
            ServerConn.Connect();

            if (ServerConn.SqlConnectionObject.State == ConnectionState.Open)
            {
                Server svr = new Server(ServerConn);
                string[] DatabaseNames = GetDatabaseNames();
                foreach (string Database in DatabaseNames)
                {
                    Backup bkp = new Backup();
                    bkp.Devices.AddDevice(SanityConstants.DBBackupFolder + Database + ".bak", DeviceType.File);
                    bkp.Database = Database;
                    bkp.Action = BackupActionType.Database;
                    bkp.Initialize = true;
                    bkp.SqlBackup(svr);
                }
            }
        }

在Windows Server 2008 32位计算机上执行此代码时,出现以下错误:

“服务器'[DT-COMP]'的备份失败。 - 无法加载文件或程序集'Microsoft.SqlServer.SqlEnum,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一。系统找不到指定的文件。“

此计算机上安装了SQL Server 2008 R2。我能够在其他Win Server 2008计算机上复制该问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您显示的错误不是由于您编写的代码,而是由于SqlServer安装问题,修复系统中的SqlServer并重试。如果它也无法正常工作,请停止SqlServer并再次启动,请分离数据库并重新连接。