16

就在我终于明白 Msxml2.XMLHTTP 和 Msxml2.ServerXMLHTTP 的区别的时候

http://support.microsoft.com/kb/290761

XMLHTTP 是为客户端应用程序设计的,它依赖于基于 Microsoft Win32 Internet (WinInet) 构建的 URLMon。ServerXMLHTTP 是为服务器应用程序设计的,它依赖于新的 HTTP 客户端堆栈 WinHTTP。ServerXMLHTTP 提供可靠性和安全性,并且是服务器安全的。有关详细信息,请参阅 MSXML 软件开发工具包 (SDK) 文档。

突然我发现 WinHttp.WinHttpRequest ......

http://msdn.microsoft.com/en-us/library/aa382925(VS.85).aspx

Microsoft Windows HTTP 服务 (WinHTTP) 为开发人员提供服务器支持的 HTTP/1.1 Internet 协议高级接口。WinHTTP 旨在主要由与 HTTP 服务器通信的服务器应用程序在基于服务器的方案中使用。

那么,这与 Msxml2.ServerXMLHTTP 有何不同

(嗯,隐含的问题是我应该使用哪一个......)

4

3 回答 3

11

Msxml2.XMLHTTP 和 Msxml2.ServerXMLHTTP 是两个组件,它们共享相似的接口,用于通过 HTTP 协议获取 XML 文件。前者建立在 URLMon 之上,后者依赖于 WinINet。后者基于 WinHTTP,它是 WinINet 的服务器友好替代品。简单地说——ServerXMLHTTP = XML + WinHTTP。

于 2009-11-30T07:50:46.950 回答
2

同样,最近的一个应用程序发现我提出了类似的问题,但是在进行了一些初步研究之后,我将其简化如下:

WinHTTP :: HTTP/1.1 Internet 协议的高级接口

ServerXMLHTTP :: ServerXMLHTTP 推荐用于服务器应用程序,XMLHTTP 推荐用于客户端应用程序

取决于你在做什么以及你需要多少控制。

明确拒绝的 ServerXMLHTTP 元素通常会引起一些开发人员的烦恼,因为它需要更多的“工作”才能有效地实现。ServerXMLHTTP 没有明确允许的 WinHTTP 和 XMLHTTP 对象的帮助。

如果您的解决方案需要企业上的元素,则可以选择适当地选择。

于 2015-11-02T10:32:27.743 回答
-6

我们在经典的 ASP Web 应用程序中使用了这两个组件。每分钟都会调用很多次,从服务器到服务器的asp服务器端页面调用另一个asp或aspx服务器端页面)。

Server.CreateObject("WinHttp.WinHttpRequest.5.1")
Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

我们的经验是WinHttpRequest是稳定的,其他的不是。我们不得不将我们所有的 createobject 删除到 serverxmlhttp 并用 winhttprequest 替换它们,因为一段时间后,它占用了大量内存,冻结,或者 iis 应用程序池没有响应或变得非常慢。

我不知道每个组件的详细规格,但我可以向您保证,根据我们的经验,“MSXML2.ServerXMLHTTP.6.0”是可以使用的。

于 2011-05-10T20:31:23.197 回答