我有一个长时间运行的SQL语句,我想运行,无论我在连接字符串的"timeout ="子句中放置什么,它似乎总是在30秒后结束.
我只是SqlHelper.ExecuteNonQuery()用来执行它,并让它来处理打开连接等.
是否有其他东西可以覆盖我的超时,或导致SQL服务器忽略它?我在查询上运行了探查器,当我在管理工作室中运行它时,跟踪看起来没什么不同,而不是我的代码.
管理工作室在大约一分钟内完成查询,但即使超时设置为300或30000,我的代码仍会在30秒后超时.
我有一个用C#编写的Web服务,它位于SharePoint站点上.我使用以下代码修改了web.config:
<configuration>
<system.web>
<httpRuntime executionTimeout="360" />
Run Code Online (Sandbox Code Playgroud)
...
对于IIS Inetpub文件,SP ISAPI web.config文件和SP布局web.config.我还使用相同的代码修改了machine.config文件,并试图阻止我在IIS中看到的任何超时.
当我从Windows C#应用程序调用此Web服务时,我可以进入Web方法并开始调试变量,但在很短的时间后(约1分钟,可能更少),变量值不再存在,因为它返回:
System.Net.WebException"请求已中止:操作已超时."
我试图弄清楚需要设置正确的超时值以及如何设置.我在完成所有更改后重新启动IIS,但没有任何更改以提供不同的结果.
谢谢
目前我正在编写一个非常大的CSV文件的导入脚本.问题大部分是由于超时而在一段时间后停止或者引发内存错误.
我的想法现在是以"100行"步骤解析CSV文件,然后100行自动调用脚本.我试图通过标题(位置...)实现这一点,并使用get传递当前行,但它没有按我想要的那样工作.
有没有更好的方法,或有人知道如何摆脱内存错误和超时?
在web.config中,我将sessionState中的超时设置为20分钟.根据MSDN,此超时指定会话在被放弃之前可以空闲的分钟数.在IIS 7中,DefaultWebSite->会话状态 - > Cookie设置 - >超时自动填充web.config中设置的超时值,在我的情况下是20分钟.此外,应用程序池 - > DefaultAppPool->高级设置 - > idleTimeout,我将其设置为10分钟.
然后我做了两个测试:第一次测试:我在下午3:45登录我的网络应用程序,闲置10分钟.下午3:55,我试图使用我的应用程序,我被踢了出去.我认为idleTimeout正在发挥作用.
第二次测试:我在下午4:00登录我的网络应用程序,在下午4:05,下午4:10,下午4:15和下午4:20使用应用程序.我预计会在下午4:20被踢出局.但我不是.我认为IIS 7中的会话状态超时(20分钟)是Web Agent挑战用户重新进行身份验证之前用户会话可以处于活动状态的最长时间.显然,从这个测试,它不是.任何人都可以向我解释一下吗?另外,我如何设置上述情况的超时?
我有读取这样的网址的代码:
from urllib2 import Request, urlopen
req = Request(url)
for key, val in headers.items():
req.add_header(key, val)
res = urlopen(req, timeout = timeout)
# This line blocks
content = res.read()
Run Code Online (Sandbox Code Playgroud)
超时适用于urlopen()调用.但是然后代码进入res.read()调用,我想要读取响应数据,并且不会在那里应用超时.因此,读取调用可能几乎永远挂起,等待来自服务器的数据.我发现的唯一解决方案是使用一个信号来中断read(),因为我正在使用线程,所以不适合我.
还有哪些其他选择?是否有用于处理读取超时的Python的HTTP库?我看过httplib2和请求,他们似乎遇到了与上面相同的问题.我不想使用套接字模块编写自己的非阻塞网络代码,因为我认为应该已经有了一个库.
更新:以下解决方案都没有为我做.您可以自己查看设置套接字或urlopen超时在下载大文件时无效:
from urllib2 import urlopen
url = 'http://iso.linuxquestions.org/download/388/7163/http/se.releases.ubuntu.com/ubuntu-12.04.3-desktop-i386.iso'
c = urlopen(url)
c.read()
Run Code Online (Sandbox Code Playgroud)
至少在使用Python 2.7.3的Windows上,超时被完全忽略.
我的node.js应用程序正在使用http.requestREST API http://army.gov/launch-nukes,我需要区分三种可能的情况:
Success - 服务器回答是肯定的.我知道我的敌人被摧毁了.Failure- 我从服务器收到错误,或者无法连接到服务器.我还有敌人.Unknown- 建立与服务器的连接后,我发送了请求 - 但不确定发生了什么.这可能意味着请求从未进入服务器,或者服务器对我的响应从未成功.我可能会或可能不会刚刚开始一场世界大战.正如您所看到的,区分案例Failure和Unknown案例非常重要,因为它们具有截然不同的后果和我需要采取的不同行动.
我也非常想使用http Keep-Alive - 我可以说,我有点像一个战争贩子,并计划在突发中提出大量请求(然后很长一段时间都没有)
-
问题的核心是如何将连接错误/超时(即a Failure)与请求放在线路(即a )之后发生的错误/超时分开Unknown.
在伪代码逻辑中我想要这个:
var tcp = openConnectionTo('army.gov') // start a new connection, or get an kept-alive one
tcp.on('error', FAILURE_CASE);
tcp.on('connectionEstablished', function (connection) {
var req = connection.httpGetRequest('launch-nukes');
req.on('timeout', UNKNOWN_CASE);
req.on('response', /* read server response and decide FAILURE OR SUCCESS */);
}
)
Run Code Online (Sandbox Code Playgroud) Python 3.4.试图找到urllib.request.urlopen()中的默认超时.
它的签名是:urllib.request.urlopen(url,data = None,[timeout,]*,cafile = None,capath = None,cadefault = False,context = None)
该文档说它的"全局默认超时",并查看其代码:socket._GLOBAL_DEFAULT_TIMEOUT
秒的实际价值是多少?
我必须在Angular 2环境中使用(大量)现有代码.该代码广泛使用AngularJS 1.x 中的$timeout服务.与代码中使用的各种其他AngularJS 1.x服务相反,我很难找到有关服务的Angular 2等效信息$timeout.
该角文档似乎并没有包含服务提及任何与timeout在其名称-something.文章从AngularJS升级确实提到了我面临的情景:
也许您想要访问AngularJS的内置服务,如
$location或$timeout.
遗憾的是,本文并未实际解释如何访问这些特定服务,因为后续示例HeroesService假定服务没有AngularJS 1.x提供的任何依赖项.
文章如这一个建议使用本机的setTimeout功能不辜负的功能$timeout服务,无论是.
如何$timeout在Angular 2环境中重现功能?
编辑:正如在答案中已经注意到的,setTimeout当使用Angular 2时,本机函数的缺点是无关紧要的.在这种情况下,如果我$q从AngularJS 1.x中获得了完整,我可以$timeout像这样大致复制函数:
function $timeout(fn, delay) {
var result = $q.defer();
setTimeout(function () {
$q.when(fn()).then(function (v) {
result.resolve(v);
});
}, delay);
return result.promise;
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个asmx类型的Web服务.我在.net Windows应用程序中使用我的Web服务.
来自Web服务的Web方法接收具有不同属性的我的类的对象和对象的字节数组转换,其中我以字符串的形式添加一个xml文件.当我的包含xml数据的字符串增加时,它会在向Web服务发送数据时给出"超时"错误.
如何增加Web服务的超时时间?
我有一个ruby超时,调用这样的系统(bash)命令..
Timeout::timeout(10) {
`my_bash_command -c12 -o text.txt`
}
Run Code Online (Sandbox Code Playgroud)
但我认为即使ruby线程被中断,实际命令仍然在后台运行..这是正常的吗?我怎么能杀了它?