Tag: 超时

在执行长时间运行的数据库任务时处理Web服务超时

我们的产品之一的架构是典型的3层解决方案: C#客户端 WCF Web服务 SQL Server数据库 客户端从Web服务请求信息。 Web服务命中数据库以获取信息并将其返回给客户端。 这是问题所在。 其中一些查询可能需要很长时间,而且我们不知道哪些查询会很慢。 我们知道一些通常比其他人慢,但即使是最简单的请求,如果有足够的数据,也会很慢。 有时使用查询或运行大量数据的报告。 只有在大量数据减慢之前,才能优化查询。 如果数据库中的查询在SQL Server中达到最大查询超时,则数据库查询将终止,并且Web服务会向客户端返回错误。 这是理解的。 我们可以处理这些错误。 客户端正在等待Web服务调用完成。 如果数据库调用需要很长时间,则客户端可能会在调用Web服务时超时。 客户端放弃,但数据库请求继续处理。 此时,客户端与数据库不同步。 数据库调用可能成功也可能不成功。 可能有错误。 客户永远不会知道。 在某些情况下,我们不希望我们的用户发起另一个请求,如果完成上一个请求,可能会导致无效状态。 我很想知道其他人是如何处理这个问题的。 您使用了哪些策略来防止Web服务超时影响数据库调用? 我能提出的最好的想法包括在某个地方创建一个实际的数据库层 – 在Web服务内部,附加到消息队列 – 某些东西。 将每个查询卸载到另一个进程似乎过多。 (然后,我们并不总是知道给定的请求是快还是慢。) 如果我们可以将发出HTTP请求的行为与启动和运行数据库进程的行为分开,那就太好了。 我已经在之前的公司看到过使用自定义服务器,但它使用的是直接套接字通信,而我宁愿避免使用某些自定义应用程序替换Web服务。 请注意,鉴于我们处理的数据量,我们都在进行查询优化。 查询优化,索引等只会在数据量很大时才将您带到目前为止。 有时事情需要很长时间。

如何为方法设置超时

如何为busy方法+ C#设置超时。

解决SQL查询的超时错误

我收到此错误: 超时已过期。 操作完成之前经过的超时时间或服务器没有响应。 我知道那里已有指南帮助解决这个问题,但他们并没有为我工作。 我错过了什么或者我应该在哪里将代码添加到我的C#程序中的这些SQL语句中: String sql = project1.Properties.Resources.myQueryData; SqlDataAdapter sqlClearQuestDefects = new SqlDataAdapter(sql, “Data Source=ab;Initial Catalog=ac;User ID=ad; Password =aa”); DataSet lPlanViewData = new DataSet(); sqlClearQuestDefects.Fill(lPlanViewData, “PlanViewData”); 我在这一行收到超时错误: SqlDataAdapter sqlClearQuestDefects = new SqlDataAdapter(sql, “Data Source=ab;Initial Catalog=ac;User ID=ad; Password =aa”);

如何获得会话结束的通知?

我想知道我是否可以处理会话超时事件。 我需要在会话超时或用户离开我的页面或关闭浏览器窗口之前对我的函数进行函数调用。 这里最重要的部分是访问会话期间存储的所有内容,会话变量。

C#和SQL Server Management Studio中SQL查询的执行时间差异很大

我有一个简单的SQL查询,从C#运行时需要超过30秒,然后每次超时,而在SQL Server Management Studio上运行时立即成功完成。 在后一种情况下,查询执行计划不会显示任何麻烦,并且通过一些简单的操作可以很好地传播执行时间。 我在查询从C#运行时运行’ EXEC sp_who2 ‘,它被列为占用29,000毫秒的CPU时间,并且没有被任何东西阻止。 我不知道如何开始解决这个问题。 有没有人有一些见解? 查询是: SELECT c.lngId, … FROM tblCase c INNER JOIN tblCaseStatus s ON s.lngId = c.lngId INNER JOIN tblCaseStatusType t ON t.lngId = s.lngId INNER JOIN [Another Database]..tblCompany cm ON cm.lngId = cs.lngCompanyId WHERE t.lngId = 25 AND c.IsDeleted = 0 AND s.lngStatus = 1

重置会话超时而不在ASP.Net中进行回发

有没有办法在不进行回发的情况下重置会话超时? 在这种情况下,我不只是想隐藏用户的回发,我需要在没有回发的情况下重置超时。 在我的页面上,我需要弹出一个对话框,告知用户他的会话超时,如果他想保持活动,他需要点击一个按钮。 现在,当他点击该按钮时,我不想回发页面,因为它会导致数据出现问题。 (没有涉及问题) 根据答案,我修改了代码,但它仍然无法正常工作。 docs.google.com/open?id=0B-Pl5DH2W9MvMDV6SUNiTXR0Z2M

服务器响应是:5.7.57 SMTP; 客户端未通过身份validation,无法在MAIL FROM期间发送匿名邮件

我必须使用我的网络应用程序发送邮件。 鉴于以下代码显示The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to […]

在返回值的函数上实现超时

我有一个函数,它在串行端口上调用读或写请求,然后返回读取的值。 我正在使用Commstudio express(我正在实现Commstudio中的一个类),但它的超时function似乎根本不起作用,所以我正在尝试实现自己的超时。 目前我有一个定时器,根据请求设置读取或写入端口,如果定时器关闭,回调将关闭连接导致exception。 我试图让计时器的回调抛出一个exception,但exception需要通过调用原始读/写函数的线程传播,所以这样,它可以工作,但我觉得它很混乱,那里必须是一个更好的方式来做我想要的。