Вызов одной ASP страницы из другой
От: KEllan  
Дата: 18.11.02 12:07
Оценка:
Привет, многоуважаемый All!

Возникла такая проблема: нужно вызвать одну ASP страницу из
другой, ПРИ ЭТОМ ЗАМЕНЯЯ ССЫЛКИ В ВЫЗЫВАЕМОЙ СТРАНИЦЕ.

Server.Execute выполняет вызов зараз, и не дает возможности
обработать вызываемую страницу построчно.
Единственное пока работающее решение: читать файл построчно,
заменять ссылки и писать во временный файл, а потом уже
вызывать этот файл через Server.Execute. Но такое решение
неприемлемо по скорости. Хотелось бы делать то же самое,
но без записи на диск.
Может кто-нибудь знает, как это можно сделать?

Спасибо!!!
K'Ellan
Re: Вызов одной ASP страницы из другой
От: TK Лес кывт.рф
Дата: 18.11.02 12:12
Оценка: 2 (1)
Здравствуйте, KEllan, Вы писали:

KE>Привет, многоуважаемый All!


KE>Возникла такая проблема: нужно вызвать одну ASP страницу из

KE>другой, ПРИ ЭТОМ ЗАМЕНЯЯ ССЫЛКИ В ВЫЗЫВАЕМОЙ СТРАНИЦЕ.

KE>Server.Execute выполняет вызов зараз, и не дает возможности

KE>обработать вызываемую страницу построчно.
KE>Единственное пока работающее решение: читать файл построчно,
KE>заменять ссылки и писать во временный файл, а потом уже
KE>вызывать этот файл через Server.Execute. Но такое решение
KE>неприемлемо по скорости. Хотелось бы делать то же самое,
KE>но без записи на диск.
KE>Может кто-нибудь знает, как это можно сделать?

Возможные решения:
1. Написать ISAPI фильтр
2. Использовать не Server.Execute, а делать запрос через ServerXMLHTTP
3. Если позволяют возможности то, использовать тот-же ASP.NET
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Вызов одной ASP страницы из другой
От: KEllan  
Дата: 18.11.02 12:56
Оценка:
Вау, не ждал ответ так скоро RSDN рулез, однозначно!!
Спасибо.

TK>Возможные решения:

TK>1. Написать ISAPI фильтр

А можно чуть-чуть поподробнее, как это делается, если не трудно?

TK>2. Использовать не Server.Execute, а делать запрос через ServerXMLHTTP

Попробую.

TK>3. Если позволяют возможности то, использовать тот-же ASP.NET

Пока к сожалению таких возможностей нет Но для интереса, как это
делается там?
K'Ellan
Re[3]: Вызов одной ASP страницы из другой
От: TK Лес кывт.рф
Дата: 18.11.02 13:11
Оценка: 2 (1)
Здравствуйте, KEllan, Вы писали:

KE>Вау, не ждал ответ так скоро RSDN рулез, однозначно!!

KE>Спасибо.



TK>>Возможные решения:

TK>>1. Написать ISAPI фильтр

KE> А можно чуть-чуть поподробнее, как это делается, если не трудно?


Это самое "тяжелое" решение. В двух словах не расскажешь — основная идея это написать фильтр который будет пропускать через себя все, что отправляет и принимает сервер и соотв. пометять эту информацию. в той-же VS для этого есть специальные мастера.

TK>>2. Использовать не Server.Execute, а делать запрос через ServerXMLHTTP

KE> Попробую.

TK>>3. Если позволяют возможности то, использовать тот-же ASP.NET

KE> Пока к сожалению таких возможностей нет Но для интереса, как это
KE>делается там?

Там используя Server.Execute можно получить результаты без отправки их клиенту (подправить эту строку и самостоятельно отослать). Так-же для каждого запроса можно установить фильтр через который будет проходить все, что отсылается клиенту при выполнении страницы .
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Вызов одной ASP страницы из другой
От: Алекс Россия http://wise-orm.com
Дата: 18.11.02 13:25
Оценка: 2 (1)
Здравствуйте, KEllan, Вы писали:


KE>Вау, не ждал ответ так скоро RSDN рулез, однозначно!!

KE>Спасибо.

TK>>Возможные решения:

TK>>1. Написать ISAPI фильтр

KE> А можно чуть-чуть поподробнее, как это делается, если не трудно?


Кое-что лежит здесь
Автор(ы): Алексей Остапенко
Дата: 01.04.2003
В статье описываются принципы написания ISAPI-расширений для веб-сервера Microsoft IIS. Даются рекомендации
по их отладке. В качестве дополнения рассматривается методика записи сообщений в лог Windows NT.
В версии 1.1 существенно переработан метод создания пула нитей.
В версии 1.2 исправлена ошибка инициализации/деинициализации расширения при выключенном кешировании
ISAPI-приложений.


хъ
Re[4]: Вызов одной ASP страницы из другой
От: KEllan  
Дата: 18.11.02 16:09
Оценка:
Попробовал сделать через ServerXMLHTTP. Не выходит получить результат
в нужной кодировке (win-1252). Вот код:

...
   dim objSrvHTTP
   set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
   objSrvHTTP.open "GET",url
   objSrvHTTP.setRequestHeader "Content-Type", "text/html; Charset=""windows-1252""
   objSrvHTTP.send

   lineArray = split(objSrvHTTP.responseTEXT, chr(13))

   for i = 0 to Ubound(lineArray) 
       line = handle_line(lineArray(i),withinBody, parsingBodyTag)
       response.write(line & chr(13))
   next
..


Мне кажется ему нужно чтобы исходный файл был в UTF, иначе он все
спецсимволы коцает. Или я не прав?
Спасибо за помощь.
K'Ellan
Re[5]: Вызов одной ASP страницы из другой
От: KEllan  
Дата: 20.11.02 08:02
Оценка:
Неужели ни у кого не было проблем с кодировками
при использовании ServerXMLHTTP? Подскажите, плз!
Поиск по сайту и в инете ничего толком не дал,
везде говорится только про XML, а про передачу
HTML (и ASP) — ни слова.
K'Ellan
Re[6]: Вызов одной ASP страницы из другой
От: DOOM Россия  
Дата: 20.11.02 13:02
Оценка: 2 (1)
Здравствуйте, KEllan, Вы писали:

KE>везде говорится только про XML, а про передачу

KE>HTML (и ASP) — ни слова.


Правильно делают. К сожалению, MSXMLHTTP хорошая идея, но, как всегда, недоделанная. Лучше отказаться от использования этого объекта и придумать другое решение(медленный интернет очень плохо дружит с этим объектом).
Re[7]: Вызов одной ASP страницы из другой
От: DOOM Россия  
Дата: 20.11.02 13:04
Оценка:
И в догонку. Есть такая штука Server.Transfer — она позволяет передать управление другой asp странице при этом сохранятся значения переменных заведенных на этой странице. Может это решит проблему?
Re[8]: Вызов одной ASP страницы из другой
От: KEllan  
Дата: 21.11.02 08:52
Оценка:
Нет, к сожалению Server.Transfer не поможет. Он не передает
управление назад вызывающей странице (в отличие от Server.Execute),
и фактически является альтернативой Response.Redirect.
И задачу по замене ссылок тут не выполнишь.

Сейчас уговариваю шефа поставить ASP.NET Он боится что при
инсталляции могут возникнуть проблемы, а сервер очень важный.
(Кстати, большая просьба — если у кого возникали проблемы при
инсталляции .NET на серверах — поделитесь плз какие западни
там могут быть!)

Если не получится уговорить, буду скорее всего писать
ISAPI-фильтр, благо С++ — родная стихия

Благодарствую за помощь!
K'Ellan
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.