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 インターネット プロトコルへの高レベル インターフェイスを開発者に提供します。WinHTTP は、HTTP サーバーと通信するサーバー アプリケーションによって、主にサーバー ベースのシナリオで使用されるように設計されています。

では、これは Msxml2.ServerXMLHTTP とどう違うのですか?

(まあ、暗黙の質問は、どれを使うべきかということです...)

4

3 に答える 3

11

Msxml2.XMLHTTP と Msxml2.ServerXMLHTTP は、HTTP プロトコルを介して XML ファイルを取得するための類似したインターフェイスを共有する 2 つのコンポーネントです。前者は、WinINet に依存する URLMon に基づいて構築されています。後者は、WinINet のサーバーフレンドリーな代替品である WinHTTP に基づいて構築されています。簡単に言うと、ServerXMLHTTP = XML + WinHTTP です。

于 2009-11-30T07:50:46.950 に答える
2

同様に、最近のアプリケーションでも同様の質問をしていることがわかりましたが、基本的な調査を行った後、次のように単純化しました。

WinHTTP :: HTTP/1.1 インターネット プロトコルへの高レベル インターフェイス

ServerXMLHTTP :: ServerXMLHTTP はサーバー アプリケーションに推奨され、XMLHTTP はクライアント アプリケーションに推奨されます。

何をしているか、どの程度の制御が必要かによって異なります。

ServerXMLHTTP の明示的に拒否された要素は、効果的に実装するためにもう少し「作業」が必要になるため、多くの場合、一部の開発者を悩ませます。明示的に許可された WinHTTP および XMLHTTP オブジェクトの助けは、ServerXMLHTTP にはありません。

ソリューションにエンタープライズのアップスケーリング、アウトスケーリングの要素が必要な場合は、おそらく適切に選択してください。

于 2015-11-02T10:32:27.743 に答える
-6

従来の ASP Web アプリケーションでは、これらのコンポーネントの両方を使用していました。サーバーからサーバーへ、別のaspまたはaspxサーバー側ページを呼び出すaspサーバー側ページ)が毎分何度も呼び出されました)。

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 に答える