我在ubuntu服务器14.04,mono 3.2.8上通过Owin运行非常简单的信号服务器.(以下代码).
连接/断开连接在远程Windows服务器和我将位部署到Linux服务器时都能正常工作.但是当客户端意外死亡而不是告诉信号器他正在断开连接时,那就是我只在linux服务器上得到一个永无止境的SocketException.Windows服务器在大约30秒左右后断开客户端,但是linux服务器每隔10秒左右就会发出socketexception(也在下面).
如何在运行相同的代码时使linux服务器像windows服务器一样,在设置超时后断开用户并且不抛出socketexceptions?
using System;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;
using Owin;
namespace signalrtestserver
{
class Program
{
static void Main(string[] args)
{
var uri = System.Configuration.ConfigurationManager.AppSettings["startup_uri"] ?? "http://*:7890";
using (Microsoft.Owin.Hosting.WebApp.Start<Startup>(uri))
{
Console.WriteLine(string.Format("Server started on {0}. Press enter to close.", uri));
Console.ReadLine();
}
}
}
class Startup
{
static Hub hub;
public void Configuration(IAppBuilder app)
{
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
var configuration = new HubConfiguration();
configuration.EnableDetailedErrors = true;
app.MapSignalR("/signalr", configuration);
hub = new MyHub();
}
}
public class MyHub : Hub
{ …Run Code Online (Sandbox Code Playgroud) 我的代码中有一个非常奇怪的引用.我正在开发ac#chat客户端 - 服务器应用程序.当我关闭服务器时,我希望客户端自动关闭.客户端使用StremReader从TcpClient对象读取.客户端处于while循环中,它读取一行(StreamReader.ReadLine()),然后对其读取的行执行一些操作.当serever关闭时,我也关闭了tcp连接服务器端.所以,我期待客户端看到由readline引起的SocketException,捕获它并退出.但是例外不会被抓住!这是客户端循环代码:
while (true)
{
try
{
ricev = read.ReadLine();
}
catch(SocketException exc)
{
//It never gets in here
}
chat.Invoke(showMessage, ricev);
}
Run Code Online (Sandbox Code Playgroud)
当我关闭服务器时,visual studio告诉我在System.dll中引发了"System.Net.Sockets.SocketException"第一次机会异常,但我无法理解它.为什么会这样?我还尝试用a捕获任何一般异常
catch
{
}
Run Code Online (Sandbox Code Playgroud)
阻止,但这也不起作用.
任何帮助将不胜感激!
编辑:经过多次尝试后,我发现SocketException根本没有被提升.这是如此奇怪,正如我在评论中所说,在相反的情况下,当客户端在服务器之前关闭时,异常会被提升并且我可以解决它.我真的不知道发生了什么......
在日志消息中的某个位置启动jboss-portal-2.7.2时:
2013-01-30 20:32:02,541 ERROR [org.apache.tomcat.util.net.JIoEndpoint] Socket accept failed
java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)
在deploy文件夹中,共有20个war模块。有什么办法吗?
我尝试在Android studio中创建一个新项目时收到此错误消息:
Failed to import Gradle project: Error unmarshaling return header;
nested exception is: java.net.SocketException: Connection reset
Run Code Online (Sandbox Code Playgroud) 我试图从Android中的客户端读取服务器套接字中的数据.
以下是我正在使用的代码片段:
客户端(在JAVA的Android上)
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
if (client.socket == null || !client.socket.isConnected())
client.createSocket();
// Get Input/Output stream for socket
dataOutputStream = new DataOutputStream(client.socket.getOutputStream());
dataInputStream = new DataInputStream(client.socket.getInputStream());
// Here RS is simple JAVA class that stores information about payload and response length
Log.d("Send", "Sending payload for pair " + RS.getc_s_pair() + " " + RS.getResponse_len());
dataOutputStream.write(UtilsManager.serialize(RS.getPayload()));
// Notify waiting Queue thread to start processing next packet
if (RS.getResponse_len() > 0) {
Log.d("Response", …Run Code Online (Sandbox Code Playgroud) 假设我有一个在某个地址/端口上打开的UDP套接字,然后挂起.当我尝试UDPClient在同一个地址/端口上初始化一个新的UDP Socket()时,它会引发一个SocketException,因为它发现它已经在使用中.
是否有可能从代码中删除挂起的套接字,以便我可以重用它?
编辑:这是导致UDP保持阻塞的代码(显然)正常关闭UDPClient使套接字被阻止
我试图将(非常大的)序列化RDD对象加载到ec2节点集群的内存中,然后对这些对象进行一些提取并将生成的RDD存储在磁盘上(作为目标文件).不幸的是,我得到SocketException: Connection reset过一次SocketTimeoutException: Read timed out.
这是我的代码的相关部分:
val pairsLocation = args(0)
val pairsRDD = sc.objectFile[Pair](pairLocation)
// taking individual objects out of "Pair" objects (containing two of those simple objects)
val extracted = pairsRDD.filter(myFunc(_._1)).
flatMap(x => List(x._1, x._2)).distinct
val savePath = "s3 URI"
extracted.saveAsObjectFile(savePath)
Run Code Online (Sandbox Code Playgroud)
以下是我得到的错误(警告)的详细信息:
15/03/12 18:40:27 WARN scheduler.TaskSetManager: Lost task 574.0 in stage 0.0 (TID 574, ip-10-45-14-27.us-west-2.compute.internal):
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:554)
at sun.security.ssl.InputRecord.read(InputRecord.java:509)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:891)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) …Run Code Online (Sandbox Code Playgroud) 我收到以下异常:
Run Code Online (Sandbox Code Playgroud)javax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.355 PDT|SSLSocketImpl.java:479|duplex close of SSLSocket<br> javax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.356 PDT|SSLSocketImpl.java:1569|close the underlying socket<br> javax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.356 PDT|SSLSocketImpl.java:1588|close the SSL connection (initiative)<br> javax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.356 PDT|SSLSocketImpl.java:727|close inbound of SSLSocket<br> javax.net.ssl|WARNING|79|Keep-Alive-Timer|2021-03-29 23:34:12.356 PDT|SSLSocketImpl.java:500|SSLSocket duplex close failed ( "throwable" : { java.net.SocketException: Socket is closed at java.base/java.net.Socket.shutdownInput(Socket.java:1538) at java.base/sun.security.ssl.BaseSSLSocketImpl.shutdownInput(BaseSSLSocketImpl.java:216) at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:742) at java.base/sun.security.ssl.SSLSocketImpl.bruteForceCloseInput(SSLSocketImpl.java:692) at java.base/sun.security.ssl.SSLSocketImpl.duplexCloseOutput(SSLSocketImpl.java:553) at java.base/sun.security.ssl.SSLSocketImpl.close(SSLSocketImpl.java:485) at java.base/sun.net.www.http.HttpClient.closeServer(HttpClient.java:1058) at java.base/sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:183) at java.base/java.lang.Thread.run(Thread.java:834) at java.base/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134) }
我真的很困惑这个错误是从哪里出现的。
我创建了一个 .net core 3.1 控制台应用程序来读取 azure 服务总线队列消息,并将 EXE 部署在客户端本地 VM 中。它最初可以工作,但现在不能在虚拟机上工作(现在也可以在本地计算机上工作)。我在本地虚拟机中执行 exe 时遇到超时(套接字异常)。我正在使用共享访问策略连接串来连接服务总线。
异常:Azure.Messaging.ServiceBus.ServiceBusException:连接尝试失败,因为连接方在一段时间后未正确响应,或者由于连接的主机无法响应而建立的连接失败。ErrorCode: TimedOut (ServiceCommunicationProblem) ---> System.Net.Sockets.SocketException (10060): 连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败。在 Microsoft.Azure.Amqp.Transport.TransportStream.EndRead(IAsyncResult asyncResult) 在 Microsoft.Azure.Amqp.Transport.TransportStream.<>c__DisplayClass22_0.b__1(IAsyncResult a) 在 System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction,操作1 endAction, Task1 承诺,布尔需要同步)
timeout socketexception azureservicebus azure-servicebus-queues
我正在IIS上托管的Web应用程序上运行Jmeter脚本,并使用ADFS身份验证机制。对于Jmeter中的每个请求,由于“ Java.Net.SocketException”,因此失败。
我所做的是: 使用HTTP身份验证管理器从CSV数据配置元素为每个用户提供凭据。但似乎Jmeter仍未登录。
遵循了Jmeter HTTP授权管理器的文档,但看起来好像没有登录到应用程序
在Jmeter日志文件中-我看到的是:
org.apache.commons.httpclient.auth.AuthChallengeProcessor: ntlm authentication scheme selected
2014/05/22 16:34:22 INFO - org.apache.commons.httpclient.HttpMethodDirector: No credentials available for NTLM <any realm>@DomainName:PortNumber ..
2014/05/22 16:34:31 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: HTTP request retry count = 1
2014/05/22 16:34:31 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: Setting up HTTPS TrustAll scheme
2014/05/22 16:34:32 INFO - org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$4: I/O exception (java.net.SocketException) caught when processing request: Connection reset
2014/05/22 16:34:32 INFO - org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$4: Retrying request
2014/05/22 16:34:32 INFO - org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$4: I/O exception (java.net.SocketException) caught when processing request: Connection …Run Code Online (Sandbox Code Playgroud)