CreateObject("MSXML2.serverXMLHTTP.6.0") 和 CreateObject("WinHttp.WinHttpRequest.5.1") 在同时运行 100 多个对象/请求时崩溃

DoI*_*oIt 5 vb6 vba serverxmlhttp msxml6

MSXML2.serverXMLHTTP.6.0我试图使用or同时创建 100-300 个 HTTP 对象/请求WinHttp.WinHttpRequest.5.1

这些请求是使用测试应用程序在单独的线程上创建的。最多可同时运行 90 个创建对象/请求,一切正常。

当同时创建/调用超过 100 个时,应用程序会崩溃并在 KERNELBASE.dll 中出现异常。

代码:

CreateObject("MSXML2.serverXMLHTTP.6.0")
CreateObject("WinHttp.WinHttpRequest.5.1")

set obj = CreateObject("MSXML2.serverXMLHTTP.6.0")
'set obj = CreateObject("WinHttp.WinHttpRequest.5.1")

obj.open "GET", "https://httpbin.org/get", true
'https://resttesttest.com/

obj.send   ' Mostly crashes here.
obj.WaitForResponse

result =  obj.responseTEXT

set obj = Nothing
Run Code Online (Sandbox Code Playgroud)

事件查看器报告:

错误模块名称:KERNELBASE.dll,版本:6.1.7601.18015,时间戳:0x50b83c8a 异常代码:0xc00000fd 错误模块路径:C:\Windows\syswow64\KERNELBASE.dll

我尝试将 Async 设置为“true”并设置为“false”。

任何人都可以提供任何指导来调试这个吗?

S M*_*den 1

如果您这样做是为了打击 REST 服务器并对它的容量/吞吐量进行压力测试,那么我可以建议您为自己提供多个进程,每个进程都有自己的线程池(尽管我仍然不清楚您如何设法创建自己的线程) VB 脚本)。