加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何修复System.Data.SqlClient.SqlException:超时

发布时间:2020-12-16 06:48:38 所属栏目:asp.Net 来源:网络整理
导读:嗨当我尝试通过URL访问我的应用程序时,我收到包含以下错误的错误屏幕.以前我通过在backend..bt中使用dbcc命令来修复它现在这不起作用.. 超时已过期.操作完成之前经过的超时时间或服务器没有响应. 描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪
嗨当我尝试通过URL访问我的应用程序时,我收到包含以下错误的错误屏幕.以前我通过在backend..bt中使用dbcc命令来修复它现在这不起作用..

超时已过期.操作完成之前经过的超时时间或服务器没有响应.
描述:执行当前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,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]

如果我不使用上面使用的开始日期和结束日期参数,那么相同的proc工作正常
并调用dbo.FN_TCOV3(@rpt_year)AS allApps而不是dbo.FN_TCOV3_Report(@ From_Date,@ End_Date)AS allApps,唯一的差异. b / w这两个函数是一个只用一年作为参数而另一个作为2个参数即开始和结束日期.

我需要使用这两个参数,请协助.

解决方法

如果您的查询确实需要运行很长时间,可以通过设置SqlCommand对象的CommandTimeout属性来扩展TimeOut周期(myCom.CommandTimeout = 300;超时5分钟;还相应地设置相应的页面Server TimeOut)

也就是说,如果你不知道为什么你的查询运行那么久,你必须调查并修复它.

搜索 :

>缺少索引>锁>效率低下的算法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读