服务器'xxxxx / SQLEXPRESS'的备份失败

时间:2011-11-13 18:52:00

标签: c# sql-server sql-server-2008 backup smo

我在.mdf文件中使用此代码作为备份数据库。

Backup databaseBackup = new Backup();
databaseBackup.Action = BackupActionType.Database;
databaseBackup.Database = CvVariables.Catalog;
databaseBackup.Devices.Add(new BackupDeviceItem(new NecessaryFunction().MsSqlBackupFileName(this.backupTextboxPath.Text), DeviceType.File));
Server databaseServer = new Server(@".\SQLEXPRESS");
MessageBox.Show(databaseServer.ToString());
databaseBackup.SqlBackup(databaseServer);

在我的开发者PC上,此代码运行正常。但是在我客户的电脑上却抛出了这个例外:

  

服务器'xxxxx / SQLEXPRESS的备份失败'
  Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行Transact-SQL语句或批处理时发生异常。 ---> System.Data.SqlClient.SqlException:
  数据库'Cafeteria_Vernier_db'不存在。确保名称是   输入正确。
  BACKUP DATABASE异常终止。   在Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction   action,Object execObject,DataSet fillDataSet,Boolean   catchException)
  在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String   sqlCommand,ExecutionTypes executionType)
  ---内部异常堆栈跟踪结束---
  在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String   sqlCommand,ExecutionTypes executionType)
  在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection   sqlCommands,ExecutionTypes executionType)
  在Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection   查询)
  在Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(服务器   server,StringCollection查询)
  在Microsoft.SqlServer.Management.Smo.Backup.SqlBackup(Server srv)

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您在客户端PC上执行的安全上下文与开发人员PC上的安全上下文不同。验证您的客户端PC凭据是否可以访问Cafeteria数据库,否则它将获得无法找到它的相同消息(因为它无法访问它)。

我的猜测是客户端SQL Server登录在Cafeteria_Vernier_db数据库中没有映射数据库用户。