Ответ 1
WinHttpRequest устарел, и ему, похоже, не нравится работать с .Net. По крайней мере, мой сломанный после последнего обновления, и я не могу повторить его снова.
когда я наконец понял разницу между Msxml2.XMLHTTP и Msxml2.ServerXMLHTTP
http://support.microsoft.com/kb/290761
XMLHTTP предназначен для клиентских приложений и использует URLMon, который построен на базе Microsoft Win32 Internet (WinInet). ServerXMLHTTP предназначен для серверных приложений и опирается на новый стек HTTP-клиента WinHTTP. ServerXMLHTTP обеспечивает надежность и безопасность и безопасен для сервера. Для получения дополнительной информации см. Документацию по набору программного обеспечения MSXML (SDK).
внезапно я нахожу WinHttp.WinHttpRequest...
http://msdn.microsoft.com/en-us/library/aa382925(VS.85).aspx
HTTP-службы Microsoft Windows (WinHTTP) предоставляют разработчикам поддерживаемый сервером высокоуровневый интерфейс к интернет-протоколу HTTP/1.1. WinHTTP предназначен для использования в основном на серверных сценариях серверными приложениями, которые общаются с серверами HTTP.
так, как это отличается от Msxml2.ServerXMLHTTP
(ну, неявный вопрос - какой я должен использовать...)
WinHttpRequest устарел, и ему, похоже, не нравится работать с .Net. По крайней мере, мой сломанный после последнего обновления, и я не могу повторить его снова.
Msxml2.XMLHTTP и Msxml2.ServerXMLHTTP - это два компонента, которые совместно используют похожий интерфейс для извлечения XML файлов через HTTP protocal. Первый построен на URLMon, который опирается на WinINet. Позднее построена на WinHTTP, которая является серверной заменой для WinINet. Проще говоря - ServerXMLHTTP = XML + WinHTTP.
Аналогично, недавняя заявка обнаружила, что я задаю похожие вопросы, однако после выполнения некоторых рудиментарных исследований я упростил следующее:
WinHTTP:: высокоуровневый интерфейс к интернет-протоколу HTTP/1.1
ServerXMLHTTP:: ServerXMLHTTP рекомендуется для серверных приложений, а XMLHTTP рекомендуется для клиентских приложений
Зависит от того, что вы делаете и сколько требуется управления.
Явно отказано в элементах ServerXMLHTTP, которые часто приводят к раздражениям некоторых разработчиков, поскольку для обеспечения эффективной работы требуется немного больше "работы". Помочь с явно разрешенными объектами WinHTTP и XMLHTTP не существует с ServerXMLHTTP.
Если для вашего решения требуются элементы масштабирования Enterprise, масштабирование, то, возможно, выберите его соответствующим образом.
Мы использовали оба этих компонента в классических веб-приложениях ASP. Было вызвано много раз каждую минуту, от серверной серверной ASP-страницы, вызывающей другую страницу asp или aspx server-side).
Server.CreateObject("WinHttp.WinHttpRequest.5.1")
Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
Наш опыт в том, что WinHttpRequest стабилен, другой - нет. Нам пришлось удалить весь наш createobject на serverxmlhttp и заменить их winhttprequest, потому что через некоторое время он занимал много памяти, зависал, или пул приложений iis не ответил или стал очень медленным.
Я не знаю подробных спецификаций для каждого компонента, но могу вас заверить, что из нашего опыта используется "MSXML2.ServerXMLHTTP.6.0".