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

时间:2017-04-03 20:46:53

标签: vba vb6 msxml6 serverxmlhttp

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

使用测试应用程序在不同的线程上创建这些请求。一切正常,最多可同时运行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

事件查看者报告:

  

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

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

任何人都可以提供任何调试指针吗?

2 个答案:

答案 0 :(得分:1)

如果您这样做是为了破坏您的REST服务器并对其进行压力测试以获得卷/吞吐量,那么我可以建议您使用自己的线程池给自己多个进程(尽管我还不清楚您是如何创建自己的自己的线程与VBScript)。

答案 1 :(得分:0)

如果您已经用尽其他可能的原因,我会确保.dll没有问题这里是系统文件修复工具

https://support.microsoft.com/en-us/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system-files

另外,我对这个特定的.dll进行了一些挖掘,并且KERNALBASE.dll的大多数问题与32位和64位应用程序之间的不兼容性有关

https://social.msdn.microsoft.com/Forums/vstudio/en-US/2556a86b-f82e-4efb-bcdd-19919facbff6/application-error-faulting-module-name-kernelbasedll-version-61760016385?forum=vcgeneral

http://zahirkhan.com/dotnet/faulting-module-path-kernelbasedll

我希望这可以解决您的问题,或者至少让您朝着正确的方向前进。