当前位置: 首页 > 知识库问答 >
问题:

基础连接关闭--APIendpoint调用失败

程和煦
2023-03-14
public Task<HttpResponseMessage> SendAsync(HttpRequestMessage request)
{
  client = new HttpClient();

  // removed code for setting ignoreCertErrors and environmentName

  if (ignoreCertErrors && environmentName.ToUpper() != "PROD")
            {
                ServicePointManager.ServerCertificateValidationCallback =    delegate { return true; };
            }

  return client.SendAsync(request);
}

=================================================================================================================================================================堆栈跟踪:
位于system.net.httpWebRequest.EndgetResponse(IAsyncResult asyncResult)
位于system.net.http.httpClientHandler.getResponseCallback(IAsyncResultar)

===================================================================================================================消息:无法从传输连接读取数据:现有连接被远程主机强制关闭。堆栈跟踪:
在system.net.tlsstream.endwrite(IAsyncResult asyncResult)
在system.net.connectstream.writeHeaderScallback(IAsyncResult ar)

=======================================================================================================================================================================================================

====================================================================

如何获得更多细节?我试图避免像Wireshark这样的低级工具,我希望有trace/log/capture选项,更多关于应用程序调用失败的API的细节。

更新-以下是失败时的跟踪信息:

System.NET信息:0:[2292]SecureChannel#49584532::.ctor(Hostname=xx.xx.com,ClientCertificates=0,EncryptionPolicy=RequireEncryption)

System.NET信息:0:[2292]SecureChannel#49584532-留下0个客户端证书可供选择。

使用缓存的凭据句柄的System.NET信息:0:[2292]。System.NET信息:0:[2292]InitializeSecurityContext(凭据=system.net.safefreecredential_security,context=(null),targetName=xx.xx.com,inFlags=ReplayDetect、SequenceDetect、InitManualCredValidation,AllocateMemory,InitManualCredValidation)System.NET信息:0:[2292]InitializeSecurityContext(In-Buffer长度=0,Out-Buffer长度=178,

system.net.sockets详细:0:[2292]套接字#14347911::BeginSend()

System.net.Sockets详细:0:[2292]退出套接字#14347911::BeginSend()->OverlappedAsyncResult#19699911 System.net.Sockets详细:0:[2292]套接字#14347911::PostCompletition中的数据

[移除]

system.net.sockets详细:0:[2292]套接字#14347911::BeginReceive()

system.net.sockets详细:0:[2292]退出套接字#14347911::BeginReceive()->OverlappedAsyncResult#2389992

system.net.sockets详细:0:[2292]套接字#14347911::EndReceive(OverlappedAsyncResult#2389992)

system.net.sockets错误:0:[2292]套接字#14347911::EndReceive中的异常-现有连接被远程主机强制关闭。system.net.sockets详细:0:[2292]退出套接字#14347911::endreceive()->int32#0

system.net.sockets详细:0:[2292]套接字#14

共有1个答案

冷善
2023-03-14

日志条目:

System.net.Sockets错误:0:[2292]套接字#14347911::UpdateStatusAfterSocketError()-ConnectionReset

是由防火墙阻塞端口造成的。一旦添加了新的防火墙规则,问题就解决了。

 类似资料:
  • 正如我前面所说的,我能够在visual studio的调试模式下使其正确工作,但一旦创建了可执行文件,我就不能再读取网页了。如有任何帮助,我们将不胜感激。是什么导致了这个问题?

  • 我使用weblogic应用服务器和oracle数据库。我使用jdbc与oracle数据库通信。我从weblogic数据源获得连接,并向表中插入一条记录。问题是,当我想关闭连接(插入数据库后)时,我会遇到一个异常(连接已经关闭)。这是我的代码: 但是联系。close语句引发异常: 我试图避免连接。close语句(因为我教过连接是自动关闭的!!但过了一段时间,所有的连接都打开了,因此引发了一个异常)

  • 的JavaDoc没有说明关闭底层: https://docs.oracle.com/javase/8/docs/api/java/io/inputstreamreader.html#close-- 从类复制的描述:Reader 关闭流并释放与之关联的任何系统资源。一旦流关闭,进一步的read()、ready()、mark()、reset()或skip()调用将引发IOException。关闭以前关

  • JavaDoc for没有提到关闭底层的: https://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close-- 从课堂上复制的描述:Reader 关闭流并释放与之关联的所有系统资源。流关闭后,进一步的read()、ready()、mark()、reset()或skip()调用将抛出IOException。

  • 这是我用来调用web API的代码。通过浏览器调用web api工作正常。

  • 问题内容: 我想使用OkHttpClient加载URL,如果给定URL的网站以pdf内容类型响应,我将继续下载PDF,否则我想忽略响应。 我的问题是,我是否需要做一些特殊的事情来关闭请求/响应,或者如果我选择不读取响应字节流,是否需要做任何事情来表明我将不使用响应?如果没有,OkHttpClient何时关闭连接? 问题答案: 调用将释放响应所拥有的所有资源。连接池将使连接保持打开状态,但是如果未使