ASP Classic GET-запрос без многопоточности - PullRequest
1 голос
/ 05 октября 2009

Речь идет о классическом ASP, а не ASP.NET!

Давайте начнем сверху. Мы используем ISAPI_Rewrite, и мы хотели бы динамически предлагать нашим клиентам контролировать переписывание URL-адресов (предоставление им httpd.ini не вариант). Мы думали, что все неизвестные URL-запросы (мы определяем это в httpd.ini) управляются одним asp-файлом, который создает запрос GET для выбора URL-адреса (клиенты создают ключ -> таблицу значений). Теперь мы можем сделать запрос на другую страницу и просто распечатать вывод, но мы не можем сделать запрос на наш собственный сервер. Как я знаю, ASP не предлагает этого.

Мы могли бы написать расширение .NET для управления этим, но мы ищем другие варианты. Я знаю, что отказ от .NET - это глупость, но это долгая история ...

Есть ли решение этой проблемы в ASP?

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Взгляните на Server.Execute , он позволяет динамически (во время выполнения) включать код других ASP-файлов. Дополнительным бонусом является то, что он рассматривается как часть первоначального запроса, поэтому SESSION, COOKIE все доступны во включенном файле. ОДНАКО переменные, определенные в мастере, недоступны для включенной страницы. Вы можете обойти это, используя временные переменные Session.

Session("variable") = "value";
Server.Execute(url);
Session.Abandon;
Response.end;

Session.Abandon удалит ВСЕ переменные сеанса, вы можете захотеть очистить их индивидуально.

0 голосов
/ 06 октября 2009

Вы можете сделать запрос на свой собственный сервер, но на странице, выполняющей запрос, НЕ нужно включать сеанс в объявлении страницы прямо вверху страницы:

Каждая страница блокирует объект сеанса и его содержимое, которое останавливает ваш запрос на ваш собственный сервер. Если вы объявите, что не собираетесь использовать сессию в вызывающем скрипте, он не заблокирует его, и вы можете запустить его снова с помощью XMLRequest и передать то, что вам нравится, в строке запроса, опубликовать данные и куки-файлы сеанса, так что сессия и т. Д. Все будет по-прежнему существовать.

...