Server.Transfer для внутреннего виртуального приложения - PullRequest
2 голосов
/ 04 декабря 2009

У меня вопрос, как управлять несколькими виртуальными приложениями, расположенными на одном хосте

firstdomain.com перенаправляется на firstdomain.com/1 seconddomain.com перенаправляется на seconddomain.com/2 и так далее... каждый новый домен должен находиться в другой папке, и пока он работает нормально. Но это вызывает некоторые неудобства, например, seconddomain.com/1 показывает сайт firstdomain.com.

Я пытаюсь создать что-то вроде отправки в корневой каталог "/" для передачи необходимого домена через Server.Transfer ("").

но это не работает, как я думал:

Server.Transfer("/" + folder + "");

вызывает эту ошибку:

Ошибка сервера в «/» приложении. ошибка выполнение дочернего запроса для / Web_folder.

Описание: необработанный исключение произошло во время выполнение текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для более информация об ошибке и где он возник в коде.

Сведения об исключении: System.Web.HttpException: ошибка выполнение дочернего запроса для /web_folder.

Server.Execute("/" + folder + "");

также вызывает ошибку:

Ошибка при выполнении дочернего запроса для /web_folder.

Описание: необработанное исключение произошло во время исполнения текущий веб-запрос. Пожалуйста, просмотрите трассировка стека для получения дополнительной информации о ошибка и откуда она возникла код.

Сведения об исключении: System.Web.HttpException: ошибка выполнение дочернего запроса для /web_folder.

оба приложения работают нормально, по указанному URL-адресу.

а также существует проблема с двумя приложениями, если я использую HttpModules из корневого web.config, это вызывает ошибку компиляции внутри виртуального приложения. Он может быть пропущен, если я добавлю ссылку на тот же проект на виртуальном сайте.

Есть предложения?

я думаю, что должно быть какое-то решение, многим нужно перенаправить любой поддомен в подпапку без перенаправления, чтобы сохранить оригинальный URL. Dsplay

спасибо.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2009

Нельзя Server.Transfer приложению, размещенному в другом виртуальном каталоге в IIS, чем тот, который выполняет запрос.

0 голосов
/ 04 декабря 2009

Server.Transfer может происходить только для одного HttpContext. Каждый виртуальный каталог или приложение имеет свой собственный объект HttpContext, и они не знают, что сосуществует! так что вы не можете этого сделать.

...