gpt4 book ai didi

asp.net - 如何修复 System.Data.SqlClient.SqlException : Timeout expired

转载 作者:行者123 更新时间:2023-12-03 20:26:44 25 4
gpt4 key购买 nike

嗨,当我尝试通过 URL 访问我的应用程序时,我收到包含以下错误的错误屏幕。以前我通过在后端使用 dbcc 命令来修复它..bt 现在这不起作用..

超时已过。操作完成前超时时间已过或服务器未响应。
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:超时已过期。操作完成前超时时间已过或服务器未响应。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

这是我从 .NET 应用程序调用的存储过程的源代码。

      USE [TCO]
GO
ALTER PROC [dbo].[SP_TCOV3] (@year INT) AS
DECLARE @rpt_year INT;
IF @year > 2011
BEGIN
SET @rpt_year = 2011;
END
ELSE
BEGIN
SET @rpt_year = @year;
END
DECLARE @From_Date DATETIME='01-01-2012' -- mm/dd/yyyy
DECLARE @End_Date DATETIME=(SELECT TOP 1 DATEADD(dd, -DAY(DATEADD(m,1,dbo.ManpowerCost.payment_date)), DATEADD(m,1,dbo.ManpowerCost.payment_date)) as value
FROM dbo.ManpowerCost order by payment_date desc)

(
SELECT
allApps.[Application Name],
'$'+(CAST((CAST(allApps.[BAM Staff Support] AS DECIMAL(10,2))) as varchar(50)))AS [BAM Staff Support],
'$'+(CAST((CAST(allApps.[BAM Non-Shell Support] AS DECIMAL(10,2))) as varchar(50)))AS [BAM Non-Shell Support] ,
'$'+(CAST((CAST(allApps.[BSM DBA Support] AS DECIMAL(10,2))) as varchar(50)))AS [BSM DBA Support] ,
'$'+(CAST((CAST(allApps.[Middleware Support] AS DECIMAL(10,2))) as varchar(50))) AS [BSM Middleware Support],
'$'+(CAST((CAST(allApps.[IRM Logical Access] AS DECIMAL(10,2))) as varchar(50)))AS [IRM Logical Access] ,
'$'+(CAST((CAST(allApps.[Application Licensing and Maintenance] AS DECIMAL(10,2))) as varchar(50))) AS [Application License and Maintenance],
'$'+(CAST((CAST(allApps.[Middleware Licensing and Maintenance] AS DECIMAL(10,2))) as varchar(50)))as [Middleware License and Maintenance],
'$'+(CAST((CAST(allApps.[Database Licensing and T-System DBA Maintenance] AS DECIMAL(10,2))) as varchar(50))) AS [TS DBA Maintenance],
'$'+(CAST((CAST(allApps.[Hosting and Storage] AS DECIMAL(10,2))) as varchar(50)))AS [Hosting and Storage] ,
'$'+(CAST((CAST(allApps.[Telecom Connection Charge] AS DECIMAL(10,2))) as varchar(50))) AS [Telecom Connection Charges],
'$'+(CAST((CAST(allApps.[Total Application TCO] AS DECIMAL(10,2))) as varchar(50)))AS [Total Application TCO]
FROM
--dbo.FN_TCOV3(@rpt_year)AS allApps
dbo.FN_TCOV3_Report(@From_Date,@End_Date)AS allApps

)ORDER BY allApps.[Application Name]

如果我不使用上面使用的开始日期和结束日期参数,则相同的过程正在运行
并调用 dbo.FN_TCOV3(@rpt_year)AS allApps 而不是 dbo.FN_TCOV3_Report(@From_Date,@End_Date)AS allApps,唯一的区别。 b/w 这两个函数一个只需要一年作为参数,另一个需要两个参数,即开始和结束日期。

我需要使用这两个参数,请帮忙。

最佳答案

如果您的查询 真的需要长时间运行,可以通过设置CommandTimeout来延长超时时间。您的属性(property)SqlCommand对象( myCom.CommandTimeout = 300; 为 5 分钟超时;也相应地设置相应的页面服务器超时)

也就是说,如果您不知道为什么您的查询运行那么长时间,您可以 必须调查并修复它。

搜索 :

  • 缺少索引
  • 低效算法
  • 关于asp.net - 如何修复 System.Data.SqlClient.SqlException : Timeout expired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899387/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com