当我尝试执行以下代码时,程序将无限期挂起.我不知道为什么,似乎还有其他未解答的话题.虽然,如果无法访问IP \网站,那么它按预期工作.
private void DoStuff()
{
string connectionString = "Data Source=www.google.com;Connection Timeout=5";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open(); //Hangs here indefinitely
Console.WriteLine("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我将连接字符串设置为
connectionString = "Data Source=www.nonexistentsite.com;Connection Timeout=5";
然后它会抛出异常.如何让它为活动站点抛出异常?... 显然,谷歌只是出于测试目的.
编辑:
如果我尝试连接到无法访问的服务器名称或IP地址,我将收到此异常...
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: …
c# database database-connection sqlconnection connection-timeout
您是否知道,在Microsoft Azure网站服务下托管的网站默认配置为在空闲20分钟(idleTimeout)和应用程序池每29小时重启(periodicRestart)后超时.这会导致第一个用户访问网站的速度很慢.
我想知道标准模式下新的"Always On"设置是否可以防止这两种情况发生.
我发现了一些提到该功能的文章,他们都非常清楚,将避免空闲超时,但没有一个明确地谈到定期重启:
我们今天介绍的其他一些有用的网站功能是我们称之为"永远在线"的功能.在站点上启用"始终开启"后,Windows Azure将自动定期ping您的网站,以确保网站始终处于活动状态且处于暖/运行状态.这有助于确保站点始终响应(并且由于缺少外部HTTP请求,应用程序域或工作进程未分页).
Azure文档也不是很明确:
始终开启 - 默认情况下,如果网站闲置一段时间,则会将其卸载.这使系统可以节省资源.如果需要始终加载站点,则可以在标准模式下为站点启用"始终开启"设置.如果禁用"始终开启",连续的Web作业可能无法可靠地运行,则应在站点上运行连续Web作业时启用"始终开启".
http://www.windowsazure.com/en-us/documentation/articles/web-sites-configure/
我正在编写一个JAVA代码,使用Apache Commons Net FTPClient遍历FTP位置并在Excel文件中获取输出.代码正确执行大约5分钟,但然后给出IOException:
org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
Run Code Online (Sandbox Code Playgroud)
我正在使用commons-net-3.0.1.jar.我做了一些研发并尝试过:
setDefaultTimeout(6000);
setConnectTimeout(3000);
setSoTimeout(3000);
enterLocalPassiveMode();
Run Code Online (Sandbox Code Playgroud)
和发送NOOP,但仍然得到相同的错误.
我想要做的就是遍历目录,如果找到文件而不是获取文件名和文件更新日期在excel中,如果找到目录,则进入内部并执行直到再次找到文件.
请帮忙询问是否需要其他信息.我是JAVA的新手.
java ftp ftp-client connection-timeout socket-timeout-exception
在NHibernate连接失败(连接超时)之前,有没有办法全局设置等待连接到给定数据库的时间?在ADO.NET中,您可以为这样的单个连接执行此操作:
new SqlConnection().ConnectionTimeout = 10;
Run Code Online (Sandbox Code Playgroud)
我发现,你会如何设置时间等待一个结果集,命令执行失败之前这里(命令超时).但是,显然,这不是我需要的
在$ http文档中,它没有提到在未定义的情况下哪个是默认超时.
我怎么知道这个配置的默认值是什么?
我正在使用findInBackground()不同连接类型下的方法测试Parse上的查询.当连接不可用时,有时候done()回调会在几秒钟后返回以下异常,如下所示:
com.parse.ParseException: i/o failure: org.apache.http.conn.HttpHostConnectException: Connection to https://api.parse.com refused
Run Code Online (Sandbox Code Playgroud)
但是有些时候它需要花费30-60秒才能被抛出,甚至根本不被召唤.
有没有办法控制这种行为?我想设置一个固定的超时,比如10秒.
首先,我已经阅读了很多关于我的问题的问题,但是它从来没有给我解决方案。以下是一些有关我的问题的阅读问题。
我也阅读了有关我的问题的这篇文章,但它也从未为我提供解决方案。
问题:
我在Web服务应用程序中使用Okhhtp3库。它工作正常,但是当互联网连接速度慢或连接不可靠时,它就卡住了,永远不会超时,也永远不会调用超时异常或失败方法。
这是客户端代码:
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.build();
Run Code Online (Sandbox Code Playgroud)
20秒后如何获得超时异常或称为故障方法?
请帮我。谢谢
我们正在使用HttpClient将json发布到一个宁静的Web服务.在一个例子中,我们遇到了困扰我们的事情.使用postman,fiddler等工具,我们可以发布到端点并看到它正在工作.当我们对HttpClient.PostAsJsonAsync做同样的事情时,我们可以在我们发布的软件中验证它收到的数据就好了.但是,我们的PostAsJsonAsync总是最终超时,而不是给我们一个响应.
我们与创建我们正在消费的服务的团队合作,加上我们的额外测试,我们还没有真正超时的服务.
每次我们使用HttpClient发布帖子时,我们都可以验证我们发布的目标软件是否确实获得了数据.每当我们从任何其他工具发布到目标软件的帖子时,我们总是很快看到状态代码为200的响应.关于HttpClient的某些内容未能接受来自此特定服务的响应.有没有人知道我们可以从这里看到什么?
这是代码(虽然它是如此千篇一律,我几乎觉得不需要)
public string PostData(string resourcePath, Object o, Boolean isCompleteUrl = false, int timeoutMinutes = -1)
{
using (var client = new HttpClient())
{
if (timeoutMinutes > 0)
{
client.Timeout = new TimeSpan(0,timeoutMinutes,0);
}
var useUrl = isCompleteUrl ? resourcePath : ApiBase + resourcePath;
var response = client.PostAsJsonAsync(useUrl, o).Result;
if(response.StatusCode == System.Net.HttpStatusCode.OK)
{
return response.Content.ReadAsStringAsync().Result;
}
return "";
}
}
Run Code Online (Sandbox Code Playgroud) 我正在我的应用程序中运行嵌入式jetty服务器(jetty 6.1.24),如下所示:
Handler handler=new AbstractHandler()
{
@Override
public void handle(String target, HttpServletRequest request,
HttpServletResponse response, int dispatch)
throws IOException, ServletException {
//this can take a long time
doSomething();
}
};
Server server = new Server(8080);
Connector connector = new org.mortbay.jetty.nio.SelectChannelConnector();
server.addConnector(connector);
server.setHandler(handler);
server.start();
Run Code Online (Sandbox Code Playgroud)
我想设置一个超时值(2秒),这样如果handler.handle()方法需要超过2秒,则jetty服务器将超时并使用408 http代码(请求超时)响应客户端.
这是为了保证我的应用程序不会长时间保持客户端请求并始终在2秒内响应.
我做了一些研究并用"connector.setMaxIdleTime(2000);"测试了它.但它不起作用.
我一直在尝试使用jmeter设置aws ec2机器来对我的web服务器进行负载测试,但是我被卡住了.我在我的本地机器上有一个jmeter客户端,我想在ec2上设置多个jmeter-server节点来进行负载测试,到目前为止,我只是想让一个服务器节点启动并运行.但它对我来说还没有成功.
我在我的本地机器上运行相同的jmeter,服务器和java版本有点不同,但我不认为这是问题所在.大多数人在获取正确的ip以便在客户端和服务器节点之间进行连接时遇到了问题,但经过大量搜索后,我已经解决了所有这些问题.当服务器节点尝试返回结果并尝试连接到客户端(我的本地计算机)时,我陷入困境.服务器尝试连接到本地计算机的外部IP地址.但是它会抛出连接拒绝错误,这显然是由连接超时引起的.我想这是一些防火墙问题,但我尝试关闭我的本地机器上的防火墙,但它仍然会抛出相同的错误.我不知道我怎么能超越这个,它应该花费太多时间.
有人可以建议我解决这个问题吗?谢谢!
这是它抛出的错误:
2013/01/29 12:23:37 ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host) java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.10; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128)
at org.apache.jmeter.samplers.RemoteSampleListenerImpl_Stub.testStarted(Unknown Source)
at org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:83)
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:226)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:349)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 8 more
Run Code Online (Sandbox Code Playgroud) c# ×3
java ×2
amazon-ec2 ×1
android ×1
angularjs ×1
async-await ×1
azure ×1
database ×1
firewall ×1
ftp ×1
ftp-client ×1
jetty ×1
jmeter ×1
load-testing ×1
nhibernate ×1
okhttp ×1
okhttp3 ×1