SQL Server还原查询在Management Studio中有效,但在C#

时间:2016-06-20 21:44:24

标签: c# sql-server sql-server-2008-r2 restore

尝试使用C#对数据库进行还原时遇到问题。它在C#中引发超时错误,但在SQL Server Management Studio中正常工作。

我一直在谷歌搜索,到目前为止没有运气解决这个问题。此处类似的问题也不适用于我的情况...

SQL Server版本为2008 R2(10.50)。

我尝试的事情:

  • 增加连接超时
  • 增加commandTimeout

没有运气

以下是查询:

DECLARE @ResultCode INT   

EXEC @ResultCode = [master].[dbo].[xp_ss_restore] @database = 'KbbVehicle',@filename = 
'\\P02W02ETLDZZ017\Staging\MasterBackups\KbbVehicle.safe',
@server = 'p02w02etldzz017',@disconnectusers = 1, @replace = 1 

SELECT @ResultCode AS ResultCode 

这里是给出的异常和堆栈跟踪:

  

SQLsafe备份和恢复CLI版本8.0.0.423(x64)   13:37:14Info
  版权所有(c)2004-2014 Idera,Inc。,保留所有权利。   13:37:14Info
  http://www.idera.com/ 13:37:14信息

     

在P02W02ETLDZZ017上连接到服务...成功。 (8.0.0.423)   13:37:14Info
  恢复KbbVehicle ......失败。 13:37:14Info
  服务器实例:P02W02ETLDZZ017,数据库:KBBVehicle 13:37:14Info

     

超时已过期。操作完成之前经过的超时时间或服务器没有响应。

     

正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   正在回滚不合格的交易。预计回滚完成率:100%。   13:37:14Info   --- SQLsafeCmd输出结束---   13:37:14Info      at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,Boolean breakConnection,Action 1 wrapCloseInAction) 13:37:14Info at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 13:37:14Info at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) 13:37:14Info at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout) 13:37:14Info at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource 1 completion,String methodName,Boolean sendToPipe,Int32 timeout,Boolean asyncWrite)   13:37:14Info      在System.Data.SqlClient.SqlCommand.ExecuteNonQuery()   13:37:14Info      在提交#0..ctor(会话会话,对象& submissionResult)

这是C#代码(这是一个片段,这实际上是在章鱼触手上运行,但在Visual Studio上试过..同样的错误):

using System.Data.SqlClient;
using System.Data.Common;
using System.Data;

String query = Octopus.Parameters["Octopus.Action[Create RESTORE T-SQL statement based on the given variable(s)].Output.MySqlTextMaster"];
String TargetServer = Octopus.Parameters["Octopus.Action[Constructs the target TargetServer and TargetDatabase variables].Output.TargetServer"];
String TargetDatabase = Octopus.Parameters["Octopus.Action[Constructs the target TargetServer and TargetDatabase variables].Output.TargetDatabase"];

StringBuilder connectionString = new StringBuilder();
connectionString.Append("Server=").Append(TargetServer).Append(";")
        .Append("Database=").Append(TargetDatabase).Append(";")
        .Append("Trusted_Connection=True;connection timeout= 1200;");

Console.WriteLine(connectionString.ToString());

try
{            
    using (SqlConnection connection = new    SqlConnection(connectionString.ToString()))
    {
        SqlCommand command = new SqlCommand(query, connection);
        command.CommandTimeout = 3600;
        //command.CommandType = CommandType.StoredProcedure;
        connection.Open();
        connection.InfoMessage += (object obj, SqlInfoMessageEventArgs e) => { System.Console.WriteLine(e.Message); };

        command.ExecuteNonQuery();
    }
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine(e.StackTrace);
}

0 个答案:

没有答案