问题标签 [servicepointmanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 根据使用 imap 的验证程序,远程证书无效
我使用 IMAP 要求和 SMTP 发送命令编写了一个 NET 4.5 客户端应用程序工具。
现在我当前的问题是我在一个客户处遇到以下异常:
根据验证程序,远程证书无效
我将代码更改为:
所以所有的证书都应该被接受。服务器需要 SSL。相同的连接信息在使用 Outlook 或 Thunderbird 时没有错误。
c# - HTTPS 代理因 ServicePointManager 而失败
我正在尝试通过 https 代理进行连接,但总是捕获到一个异常,指出“ServicePointManager 不支持 https 方案的代理”。我用来测试连接的代码如下:
我还使用 curl 测试了代理,它运行良好(尽管出于某种原因我不得不使用 --proxy-insecure)。我使用的命令是:
当我尝试使用 http:// 作为代理 curl 时,只是给了我错误“(56) Proxy CONNECT aborted”。
那么,是否可以在 .NET Framework 中使用 https 代理?(我目前正在使用 .NET 4.6.2)
c# - c# Webrequest through https(已配置)代理(ServicePointManager 不支持 https 方案的代理)
我需要使用也有 https 地址的代理连接到 https-url。我的代码就是这样的:
这样做我得到一个众所周知的错误:
ServicePointManager 不支持 https 方案的代理
为简单起见,此处没有凭证代码。不,用户不会将代理更改为 http。
现在有一些提示,这是无法实现的,例如: Microsoft 博客或MSDN 论坛,但这些都有些陈旧,这表明,至少 Chrome 和 Firefox 似乎有解决该问题的方法。
谁能告诉我,如何通过代理访问 https 地址,而代理本身只能通过 https 访问?
ServicePointManager 现在应该可以做到了,有什么发展吗?
谢谢!!
c# - C# - HttpWebRequest / GetResponse 性能
我有一个基于 HTTPS 的 API,我需要调用很多次。使用 HttpWebRequest.Create(uri).GetResponse() 需要 50 毫秒到 500 毫秒或更长时间来执行。为了检查响应时间,我这样实现:
然后调用它:
多个调用的输出:
第一个问题:我想知道是否有任何方法可以加快 GetResponse 以使其花费尽可能少的时间?
现在..因为我需要用不同的URL发出很多不同的请求,为了加快我决定使用TPL Dataflow Block
(而不是Parallel.Foreach
)的过程,因为Parallel.Foreach
主要用于CPU bound
工作,而我正在做的是I/O bound
(还有处理的响应,所以也有一点 CPU 工作)。当我使用 TPL Dataflow Block 时,处理 250 个 URL 需要 7 秒才能执行,而 Parallel Foreach 需要 15 秒或更长时间,所以我很肯定 TPL Dataflow Block 的使用是正确的方法。我是如何实现的:
而且由于我对 7s 的执行不满意,我尝试过调整ServicePointManager
以加快速度,到目前为止我尝试过的事情都没有奏效:
第二个问题:如果无法加快速度GetResponse()
以实现更快的执行,有没有办法调整TPL Dataflow Block
以获得更好的性能?
编辑:我的目标是尽可能快地执行所有调用。
c# - Owin中的最大并发请求数
我使用 OWIN 在控制台应用程序中自托管了一个小型 Web 应用程序。
在到达 ApiController 之前,注册了一个中间件:
这里 Next.Invoke 调用了控制器方法,它基本上将 http 请求异步转发到另一个 API,即感兴趣的主线是:
但是,如果我尝试像这样向 API 提交 10 个 http 请求(不是故意等待它们,因为我想对 API 施加压力)
然后立即再提交 10 个,然后我在 HealthcheckMiddleware 的 catch 块中得到以下异常:
InvalidOperationException:提交响应后无法执行此操作。
堆栈跟踪:
我试过搜索 Stackoverflow 和 Google,但似乎找不到任何有价值的东西。例如,我找到了这个,但是这里开发人员在提交请求后阅读了请求,而我没有这样做。
以防万一,这里包含 ApiController 中的完整 POST 方法:
c# - ServicePointManager.DefaultConnectionLimit 按 IP 吗?
我正在构建一个网络爬虫,目标站点不允许来自同一 IP 的超过 2 个并发连接。
我的计划是:我会购买一个带有 4 个额外弹性 IP 的 EC2,以更快地获取数据(将是 10 个并发连接,8 个来自其他 IP,2 个来自“主”IP)。
我会使用BindIPEndPointDelegate
(从这里获取)来设置源 IP,然后开始下载页面。
所以我的问题来了: DefaultConnectionLimit 将应用于每个源 IP 还是将整个应用程序限制为 2 个并发连接?
powershell - PowerShell Invoke-WebRequest 引发 WebCmdletResponseException
执行Invoke-WebRequest -Uri https://www.freehaven.net/anonbib/date.html
PowerShell 行时会抛出WebCmdletResponseException
. 我怎样才能获得有关它的更多信息,以及可能导致这种情况的原因是什么?虽然我可以使用 Python 成功获取页面的内容,但在 PowerShell 中它会引发异常。
完全例外:
vb.net - 从未调用过 FtpWebRequest ServerCertificateValidationCallback
Win 7、VS2013、.NET 4.5、winforms 应用程序
我正在尝试使用 vb.net 通过 SSL/TLS 连接到 FTP 服务器。我在验证服务器证书时遇到问题,因为我正在使用的 ServerCertificateValidationCallback 方法似乎被忽略了,因此与服务器的连接永远不会发生,在 GetResponse 行出现超时错误。在将服务器证书添加为受信任后,我检查了 FileZilla 上的连接并且它工作正常。
下面是我的 FtpWebRequest:
考虑到 HttpWebRequests,我已经看到类似的主题,但是这里似乎没有什么可用的。我还启用了跟踪以查看详细情况:
我看到 FtpWebRequest 和服务点之间缺乏关联。有谁知道如何修理它?我会很感激一些指导或代码示例。
c# - c# httpclient post force single packet
Using Microsoft Message Analyzer, I can see that post data using the HttpClient is being sent in two tcp packets. One for the header, then one for the post data. This data could easily fit into one packet, however it is being split into two. I have explicitly turned on nagling and expect 100 continue off using the ServicePointManager, though, it doesn't seem to help.
5023 (.Net) shows 2 packets are sent to destination, 8170 (Postman) shows 1 packet being sent. Tests were done with the same payload.
Below is some sample code used to generate the request in .net
Is there a way to force the payload into a single packet?
Using .Net Framework 4.7