【问题标题】:differences between Msxml2.ServerXMLHTTP and WinHttp.WinHttpRequest?Msxml2.ServerXMLHTTP 和 WinHttp.WinHttpRequest 之间的区别?
【发布时间】:2010-11-12 21:05:37
【问题描述】:

就在我终于明白 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 有何不同

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

【问题讨论】:

  • 如果客户端使用 Msxml2.ServerXMLHTTP?在引用中:ServerXMLHTTP 是为服务器应用程序设计的......

标签: httpwebrequest winhttp xmlhttprequest serverxmlhttp winhttprequest


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我们在经典的 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”是可以使用的。

    【讨论】:

    • 对我来说,您的回答令人困惑。在第二段中,您说“WinHttpRequest 是稳定的,而另一个则不是”。在第三段中,您说“根据我们的经验,'MSXML2.ServerXMLHTTP.6.0' 是可以使用的”。这两段相互矛盾。
    【解决方案3】:

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

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

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

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

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

    If your solution requires elements of Enterprise up-scaling, out-scaling then perhaps choose appropriately.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2017-04-22
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      相关资源
      最近更新 更多