操作完成之前经过的超时期限或服务器没有响应. 显示包路径



我正在将 mdb 文件从上传控件上传到我的 sql 服务器数据库 asp.net。 当我上传文件时,它正在从我的数据库中调用一个存储过程,我正在其中执行我的 SSIS 包。每当我在几秒钟后调用我的存储过程时,我都会收到显示包路径的异常。

$exception {"执行超时已过期。 已用超时期限 在操作完成之前或服务器不是 响应。\rdtexec/F \"C:\DTSX\DTSXPackage\DTSXPackage\Package.dtsx\"} System.Data.SqlClient.SqlException

当我阅读解决方案时。阅读有关 SQL 的命令超时属性的信息。但问题仍然是一样的。 当我通过SQL服务器运行存储过程时,它运行良好,但是当通过 asp.net 代码调用它时,它会给出异常。

stack  trace -
>       

堆栈跟踪 " 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔中断连接,操作1 wrapCloseInAction)rn
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)rn
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)rn at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()rn at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()rn at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()rn
at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value)rn at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)rn at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)rn at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)rn at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource
1完成,Int32超时,任务和任务, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)\r at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)rn at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()rn at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)rn at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)rn at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)rn at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance, MethodInfo methodInfo, Object[] parameters)rn at DataAccessLayer.EspaceDatasetDataContext.ETL_IMPORT_09_01(Nullable1 userId, String clientMachineIP, String loadType, Nullable1 instId, Nullable1 bIsIgnoreErrors, Nullable'1& rcout)

存储过程调用方法:-

public int? RunDTSxProcess(long userID, string clientMachineIP, string loadType, long instID, bool ignoreErrors)
{
try
{
int? result = 0;
var run = database.storedproc(userID, clientMachineIP, loadType, instID, ignoreErrors,ref result);
return result;
}
catch (Exception)
{
throw;
}
}

我认为您可能希望使用 MainContext 为您的 linq to sql 做一些事情,如本答案中所述。

取自上面的答案:

using (MainContext db = new MainContext())
{
db.CommandTimeout = 3 * 60; // 3 Mins
}

最新更新