2015-06-14 7 views
2

Каков правильный способ получить вывод страницы asp, расположенной на том же сервере?тот же сервер, get url: vbscript msxml3.dll 80004005 неуказанная ошибка или ошибка msxml6.dll '80072ee6' Системная ошибка: -2147012890

<% 

GetUrl "/route/to/abc/123/" 

Function GetUrl(url) 
    Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.3.0") 
    objXMLHTTP.open "GET", URL, false 
    objXMLHTTP.send() 
    If objXMLHTTP.Status = 200 Then 
     Response.Write objXMLHTTP.ResponseText 
    End if 
    Set objXMLHTTP = Nothing 
End Function 

%> 

результат в этой досадной ошибке.

msxml3.dll error '80004005' 
Unspecified error 
/test.asp, line 7 

переключение до новой ServerXMLHTTP

set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") 

откосов другая, более значимая ошибка:

msxml6.dll error '80072ee6' 
System error: -2147012890. 
/test.asp, line 8 

которого Google счастливо нашел причину для, в котором говорится: «Не использовать serverXmlHttp для подключения к тому же серверу. (https://support.microsoft.com/en-us/kb/316451) Что вы используете? Статья не предлагала много.

В любом случае круто, есть правильная причина для моей ошибки. Но что вы используете для подключения к тому же серверу под классическим asp для захвата вывода страниц? В этой статье (https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/aa23d158-000a-4ba2-8fe8-99895854d7f0.mspx?mfr=true) упоминается, если я выполняю режим изоляции, тогда процесс выполняется отдельно для процесса веб-сервера, и там я не могу использовать SSI, я не могу понять, как включить его в первую очередь в любом случае. В любом случае это звучит отвратительно. SSI: критический в моем приложении, поэтому я не могу его рассмотреть.

Что я оставил (помимо очевидного: канава ASP)? создайте командную строку wscript.shell и вытащите ее оттуда, повторив ее обратно в stdout? отскакивает от другого рефлекторного сервера? Grr

+0

Поскольку у вас есть ровно 30 дней, пока не будет завершена поддержка Windows Server 2003 (и IIS 6), я бы сказал, что ваша главная проблема сейчас должна быть перенесена на IIS 7+. –

ответ

0

Вы не можете запрашивать веб-страницу с веб-сайта под управлением того же пула приложений.

A finite number of worker threads (in the Inetinfo.exe or Dllhost.exe process) is available to execute ASP pages. If all of the ASP worker threads send HTTP requests back to the same Inetinfo.exe or Dllhost.exe process on the server from which the requests are sent, the Inetinfo.exe or Dllhost.exe process may deadlock or stop responding (hang), because the pool of worker threads to process the incoming requests will be exhausted. This is by design.

If a single recursive request causes IIS to deadlock, the typical cause is that ASP script debugging is enabled.

Решение: создайте новую папку, поместите свой скрипт в эту папку. После этого в IIS создайте новый пул приложений и создайте новое приложение для этой папки.

Как создать новое приложение для некоторой папки: enter image description here

Sample, когда папка назначен новый пул приложений: enter image description here

ПРИМЕЧАНИЕ: Не пытайтесь 3-ю часть DLL файлы для загрузки веб-страницы из одного приложения бассейн. Результат будет таким же. Протестировано с помощью некоторого бесплатного компонента http.

+0

Внесение сценария в новую папку требует некоторой инженерной работы в моих маршрутах и ​​представлениях, но эй, это лучше, чем очистить вывод wget от командной оболочки ... Улыбки :) (документация ms делала мою голову, рядом все другие исправления, предлагаемые Google) – frumbert

 Смежные вопросы

  • Нет связанных вопросов^_^