我正在尝试使用MSXML2.serverXMLHTTP.6.0
或WinHttp.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”。
任何人都可以提供任何调试指针吗?
答案 0 :(得分:1)
如果您这样做是为了破坏您的REST服务器并对其进行压力测试以获得卷/吞吐量,那么我可以建议您使用自己的线程池给自己多个进程(尽管我还不清楚您是如何创建自己的自己的线程与VBScript)。
答案 1 :(得分:0)
如果您已经用尽其他可能的原因,我会确保.dll没有问题这里是系统文件修复工具
另外,我对这个特定的.dll进行了一些挖掘,并且KERNALBASE.dll的大多数问题与32位和64位应用程序之间的不兼容性有关
http://zahirkhan.com/dotnet/faulting-module-path-kernelbasedll
我希望这可以解决您的问题,或者至少让您朝着正确的方向前进。