尝试使用C#对数据库进行还原时遇到问题。它在C#中引发超时错误,但在SQL Server Management Studio中正常工作。
我一直在谷歌搜索,到目前为止没有运气解决这个问题。此处类似的问题也不适用于我的情况...
SQL Server版本为2008 R2(10.50)。
我尝试的事情:
没有运气
以下是查询:
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);
}