我正在对ASP.Net网站进行一些黑盒测试,我需要测试不同的会话超时情况.
我不确定他们是否完全封装了会话超时.其他一个页面打开20分钟是否有更简单的方法来强制会话超时?
我曾经使用TransactionOptions.Timeout设置事务超时,但已决定使用配置方法来简化维护:
<system.transactions>
<defaultSettings timeout="00:01:00" />
</system.transactions>
Run Code Online (Sandbox Code Playgroud)
当然,在把它放入之后,我想测试它是否正常工作,所以将超时时间减少到5秒,然后运行一个持续时间超过这个的测试 - 但事务似乎没有中止!如果我调整测试以将TransactionOptions.Timeout设置为5秒,则测试按预期工作
调查后我认为问题似乎与TransactionOptions.Timeout有关,即使我不再使用它.
我仍然需要使用TransactionOptions,所以我可以设置IsolationLevel,但我不再设置Timeout值,如果我在创建它之后查看此对象,则超时值为00:00:00,相当于无穷大.这是否意味着我的配置文件中设置的值被忽略了?
总结一下:
我想知道我是否可以为UdpClient接收方法设置超时值.
我想使用块模式,但因为有时udp会丢失数据包,我的程序udpClient.receive将永远挂在那里.
我有什么好主意可以管理它?
我可以指定HTTP超时还是服务器强加一个值?例如,如果我这样做:
telnet my.server.net 80
Trying X.X.X.X...
Connected to my.server.net.
Escape character is '^]'.
GET /homepage.html HTTP/1.0
Connection: keep-alive
Host: my.server.net
HTTP/1.1 200 OK
Date: Thu, 03 Oct 2013 09:05:28 GMT
Server: Apache
Last-Modified: Wed, 15 Sep 2010 14:45:31 GMT
ETag: "1af210b-7b-4904d6196d8c0"
Accept-Ranges: bytes
Content-Length: 123
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
[...]
Run Code Online (Sandbox Code Playgroud)
这条线:
Keep-Alive: timeout=15, max=100
Run Code Online (Sandbox Code Playgroud)
...指定最大超时为100秒,对吧?我怎样才能设定这样的价值?
这不是连接超时,因为与数据库的连接正常.问题是我正在调用的存储过程花费的时间超过30秒并导致超时.
该函数的代码如下所示:
SqlDatabase db = new SqlDatabase(connectionManager.SqlConnection.ConnectionString);
return db.ExecuteScalar(Enum.GetName(typeof(StoredProcs), storedProc), parameterValues);
Run Code Online (Sandbox Code Playgroud)
ExecuteScalar调用超时.如何延长此功能的超时时间?
对于快速存储过程,它工作正常.但是,其中一个功能需要一段时间,而且呼叫失败.当以这种方式调用ExecuteScalar函数时,我似乎找不到任何方法来延长超时时间.
任何人都可以指导我如何在java中使用简单的超时?基本上在我的项目中我正在执行一个语句br.readLine(),它正在读取调制解调器的响应.但有时调制解调器没有响应.为此我想添加一个超时.我正在寻找像这样的代码:
try {
String s= br.readLine();
} catch(TimeoutException e) {
System.out.println("Time out has occurred");
}
Run Code Online (Sandbox Code Playgroud) 我对AngularJS和指令的一个非常基本的例子有一个问题.我想创建一个使用webrtc显示网络摄像头图像的指令.我的代码完美地显示了流,但如果我添加超时(例如刷新画布),$ timeout不起作用,这就是代码:
wtffDirectives.directive('scannerGun',function($timeout){
return {
restrict: 'E',
template: '<div>' +
'<video ng-hide="videoStatus"></video>' +
'<canvas id="canvas-source"></canvas>' +
'</div>',
replace: true,
transclude: true,
scope: false,
link: function postLink($scope, element){
$scope.canvasStatus = true;
$scope.videoStatus = false;
width = element.width = 320;
height = element.height = 0;
/* this method draw the webcam image into a canvas */
var drawVideoCanvas = function(){
sourceContext.drawImage(vid,0,0, vid.width, vid.height);
};
/* start the timeout that take a screenshot and draw the source canvas */
var update = function(){ …Run Code Online (Sandbox Code Playgroud) 我在Docker Machine上遇到了一个反复出现的问题 - 它每隔几天就会决定超时,一旦发生这种情况我就无法恢复.
例
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default virtualbox Timeout
Run Code Online (Sandbox Code Playgroud)
环境信息
uname -a Darwin ColeyMBPR 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64
docker version 1.11.0
docker-machine version 0.7.0
vboxmanage --version 5.0.20r106931
Run Code Online (Sandbox Code Playgroud)
试图解决方案
我没有按特定顺序尝试以下事项:
eval "$(docker-machine env default)"docker-machine regenerate-certs default劈
现在唯一对我有用的就是摧毁docker机器并重新创建它.这会破坏我的所有图像和容器,再次设置它会非常耗费时间.
docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env)
Run Code Online (Sandbox Code Playgroud)
有什么我可以尝试的吗?谢谢! …
我必须检查一组文件路径是否代表现有文件.
它工作正常,除非路径包含不在当前网络上的计算机上的网络共享.在这种情况下,超时需要很长时间(30或60秒).
问题
有没有办法缩短非现有网络共享的超时?(我确信当他们确实存在时他们会很快回答,所以超时1秒就可以了)
有没有其他方法可以解决这个问题,而无需开始缓存并使算法更复杂?(即,我已经知道这些X网络共享不存在,跳过其余的匹配路径)
更新:使用线程工作,但不是特别优雅
public bool pathExists(string path)
{
bool exists = true;
Thread t = new Thread
(
new ThreadStart(delegate ()
{
exists = System.IO.File.Exists(path);
})
);
t.Start();
bool completed = t.Join(500); //half a sec of timeout
if (!completed) { exists = false; t.Abort(); }
return exists;
}
Run Code Online (Sandbox Code Playgroud)
此解决方案避免了每次尝试需要一个线程,首先检查哪些驱动器可以访问并将其存储在某处.
首先,您可以在IsDriveReady函数中设置"超时"值.我把它设置为5秒,但设置它适合任何适合你的.
下面使用3种方法:
- 第一个是WNetGetConnection API函数,它获取驱动器的UNC(\ servername\share)
- 第二个是我们的主要方法:Button1_Click事件
- 第三个是ping服务器的IsDriveReady功能.
这对我很有用!干得好:
Run Code Online (Sandbox Code Playgroud)'This API Function will be used to get the UNC of the drive Private Declare Function WNetGetConnection Lib …
如何在以下脚本中添加超时?我希望它将文本显示为"超时".
var bustcachevar = 1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects = ""
var rootdomain = "http://" + window.location.hostname
var bustcacheparameter = ""
function ajaxpage(url, containerid) {
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject) { // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
page_request = new ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {}
}
} …Run Code Online (Sandbox Code Playgroud) timeout ×10
c# ×3
.net ×2
angularjs ×1
asp.net ×1
c#-2.0 ×1
docker ×1
get ×1
http ×1
java ×1
javascript ×1
keep-alive ×1
macos ×1
networking ×1
session ×1
sql ×1
telnet ×1
testing ×1
transactions ×1
udpclient ×1
virtualbox ×1