问题标签 [serverxmlhttp]

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.

0 投票
1 回答
9854 浏览

vba - 带有 MSXML2.ServerXMLHTTP 的自定义标头

我目前正在尝试使用 MSXML2.ServerXMLHTTP 发送 POST http 请求。我需要添加一个自定义标头“Auth”,以便我的请求获得授权,但它似乎不起作用。这是我的帖子功能的代码:

最后我得到“错误 -2147012746 未找到请求的标头”(该消息实际上已被翻译,因为我在计算机上使用了不同的语言)。

但是,“Microsoft.XMLHTTP”对象没有这个问题。难道我做错了什么 ?

感谢您的时间。

0 投票
1 回答
1020 浏览

xmlhttprequest - ServerXmlHttpRequest 在进行 POST 时有时会挂起

我有一份工作会定期做一些涉及ServerXmlHttpRquest执行 HTTP 的工作POST。该作业每 60 秒运行一次。

通常它运行没有问题。但是大约有五万分之一的机会(每两三个月)它会挂起:

当它挂起时,甚至任务计划程序(如果运行时间超过 3 分钟,则启用了终止作业的选项)也无法结束任务。我必须连接到远程客户的网络,进入服务器,然后使用任务管理器来终止进程。

然后再过一三个月就好了。

最终我开始使用任务管理器创建一个进程转储,

在此处输入图像描述

所以我可以分析挂在哪里。在五次崩溃转储(过去 11 个月左右)之后,我得到了一致的画面:

所以我做了一个ServerXmlHttpRequest.send,它永远不会回来。它会在那里呆几天(导致系统错过金融交易,直到周日晚上我接到电话说它坏了)。

除非有人知道如何调试代码,否则它没有任何帮助,但是转储时停滞线程中的寄存器是:

  • 视窗服务器 2012 R2
  • 微软 IIS/8.5

ServerXmlHttpRequest 的默认超时

您可以使用serverXmlHttpRequest.setTimeouts(...)来配置四类超时:

  • resolveTimeout:该值用于将主机名(例如“www.microsoft.com”)映射到 IP 地址;默认值是无限的,意味着没有超时。
  • connectTimeout:一个长整数。该值用于与目标服务器建立通信套接字,默认超时值为 60 秒。
  • sendTimeout:该值适用于将通信套接字上的单个请求数据包(如果有)发送到目标服务器。发送到服务器的大请求通常会被分解为多个数据包;发送超时适用于单独发送每个数据包。默认值为30 秒
  • receiveTimeout:该值适用于从目标服务器接收响应数据包。大响应将被分解成多个数据包;接收超时适用于从套接字中获取每个数据包。默认值为30 秒

KB305053(决定保持连接打开的服务器将导致 serverXmlHttpRequest 等待连接关闭)似乎有可能是问题所在。但是 30 秒的默认超时会解决这个问题。

可能的解决方法 - 将自己添加到工作中

Windows 任务计划程序无法终止任务;即使启用了该选项来做。

我将研究使用 Windows 作业 API 将我的自我进程添加到作业中,并用于SetInformationJobObject设置我的进程的时间限制:

将我的过程限制为三分钟的执行时间:

PerProcessUserTimeLimit
如果LimitFlags指定 JOB_OBJECT_LIMIT_PROCESS_TIME,则此成员是每个进程的用户模式执行时间限制,以 100 纳秒滴答为单位。否则,此成员将被忽略。

系统会定期检查以确定与作业关联的每个进程是否累积了超过设置限制的用户模式时间。如果有,则终止该过程。

如果作业是嵌套的,则有效限制是作业链中最严格的限制。

虽然由于任务计划程序使用作业对象也限制任务的时间,但我也不希望作业对象可以限制作业。

编辑:作业对象不能通过进程时间来限制进程 - 只有用户时间。并且由于进程空闲等待一个对象,它不会累积任何用户时间——当然不值得三分钟。

奖金阅读

0 投票
1 回答
2504 浏览

https - 如何将 Http Post 请求发送到 Classic ASP 中的外部安全 https 页面?

我无法将 http 请求发送到以https开头的外部页面。但是我使用 setOption(2) = 13056 忽略安全错误我收到此错误: msxml3.dll error '80072f8f' A security error occurred。我无权访问我的服务器配置并寻找程序化解决方案。

0 投票
0 回答
411 浏览

vbscript - XMLHTTP.Open 方法无法识别

我尝试创建一个类型的对象,MSXML2.XMLHTTP.6.0但是当我调用方法 Open 时出现错误:

对象不支持此属性或方法。

这是我的代码:

我曾尝试使用 TLS 1.2,但同样的事情发生了。该strURL变量通过 HTTPS 接收地址。

有什么建议么?

0 投票
1 回答
424 浏览

asp-classic - 使用经典 ASP 的 MSXML2.ServerXMLHTTP 返回损坏的图像

多年来我没有使用过 MSXML2.ServerXMLHTTP,现在我需要使用。当我使用 MSXML2.ServerXMLHTTP 抓取页面时,该页面返回带有损坏的图像。我记得过去这样做过,我会使用一行代码,图像会完美解析。这有点像设置基本网址。有谁知道代码是什么?这是我正在使用的代码:

0 投票
1 回答
1217 浏览

utf-8 - MSXML2.ServerXMLHTTP 和国家字符

这个问题与这个问题有关:Character encoding Microsoft.XmlHttp in Vbscript,但有一点不同,国家字符在域名中,而不仅仅是参数。

任务是:从给定的 URL 下载页面。

我已经解决了通过 ADO 从 UTF8 编码文件中读取 UTF8 字符串到 VBScript 的问题。

但是现在当我尝试打开它时,MSXML2.ServerXMLHTTP 返回错误: URL 无效。

这是VBScript代码:

如果您将hxxp://россия.рф/main/page5.html之类的内容放入 UTF8 编码的 fileWithURL.txt 中,则脚本将在与hxxp://google.com正常工作时引发错误。

解决方法是使用域名的 ascii 表示 - 但我还没有找到用于 vbscript 的 PunnyCode 编码器(除了Chillkat,这对我的任务来说是一种过度杀伤力)。

感谢您对主要问题或解决方法的帮助。

0 投票
0 回答
1898 浏览

post - 经典 ASP 中的 Msxml2.serverxmlhttp.6.0 发送 GET 而不是 POST

我正在尝试从我们支持的产品的 .asp 页面向 Twilio SMS Gateway 发送请求。

我正在使用以下代码编写请求并发送它:

请求正在发送,但不是发送消息,而是检索先前发送的消息列表(GET 请求行为)。

来自 Chrome Postman 的具有相同授权和发布数据的相同请求就像一个魅力,所以它似乎是 xmlhttp 对象问题。

什么会导致对象使用错误的方法发送请求,潜在的解决方法是什么?

0 投票
0 回答
923 浏览

html - Excel VBA - 使用 XMLHTTP (MSXML2.XMLHTTP) 抓取 Google

我正在尝试为 Google 新闻上的某些新闻主题汇总每日事件表。

在一个模块中,我有以下内容:

我能够返回以下对象:

在此处输入图像描述

我知道我想要获取的红色对象在哪里,我只是在使用时遇到语法问题GetElementsByClassName在此处输入图像描述

例如,我知道文本“ZDNet”位于:

?...GetElementsByClassName("slp")(i).GetElementsByTagname("span")(0).InnerText

而日期“2017 年 1 月 7 日”位于:

?...GetElementsByClassName("slp")(i).GetElementsByTagname("span")(2).InnerText

但我无法获得正确的语法。

我希望我犯了一个非常简单的错误,但如果它们更有效,我也愿意接受其他方法。

感谢阅读,J先生

0 投票
1 回答
938 浏览

iis - 在 URL 中使用自定义协议制作 ServerXMLHTTP

这就是我想要做的......

这是我得到的错误回报......

msxml3.dll 错误“80072ee6”
URL 未使用可识别的协议

如果我使用 HTTP 协议(​​即http://recservice.com而不是ccte://recservice.com)发出请求,它工作正常。我可以在 IIS 配置中做些什么来让 ServerXMLHTTP 请求与我的自定义协议一起工作吗?

0 投票
2 回答
4738 浏览

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

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

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

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

代码:

事件查看器报告:

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

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

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