Развертывание приложения Asp.Net MVC для выпуска Win2k3 - PullRequest
0 голосов
/ 22 января 2010

Я создал приложение ASP.net mvc на моей машине с Windows XP. Сейчас я нахожусь на этапе, когда я хочу развернуть свое приложение. Я немного погуглил, как установить / настроить приложения MVC под IIS 5.1 и 6.0, но у меня все еще есть проблемы, хотя я сделал все, как я полагаю, по книге.

На моем компьютере с XP я создал виртуальный каталог, добавил сопоставление приложений «. *» И снял флажок «Проверить, что файл существует».

Когда я перехожу на localhost / vince /, моя страница отображается великолепно! После входа я перенаправлен на: локальный / Vince / Сделка / Индекс

Представление (Transaction / Index.aspx) просто отображает деловую информацию ...

Пользователь имеет право редактировать свою учетную запись, щелкнув ссылку MyAccount, которая приводит его к: локальный / Vince / счета / Индекс

У меня есть кнопка отмены в нижней части этого представления, которая в основном возвращает вас к: localhost / vince / транзакция / индекс

Источник просмотра этой кнопки отмены:

<input onclick="location.href='/Transaction/Index'" 
       type="button" value=" Cancel " />

Проблема в том, что когда пользователь нажимает кнопку отмены, которую он отправляет на localhost / Transaction / Index

И я получаю страницу 404, не найденную… Обратите внимание, как было удалено имя моего виртуального каталога «vince».

Для дальнейшего тестирования… я решил развернуть приложение MVC на Win2k3 с IIS 6.0. Создал ту же самую вещь, виртуальный каталог и добавил сопоставление приложений, только чтобы понять, что он делает то же самое. Теперь вместо создания виртуального каталога я создал веб-сайт. Как ни странно, теперь он работает без необходимости что-либо менять… Кто-нибудь знает, почему он теперь работает на новом веб-сайте, а не на новом виртуальном каталоге.

Спасибо

Ответы [ 3 ]

1 голос
/ 22 января 2010

Ваша кнопка отмены отправляет браузер на /Transaction/Index. Важно отметить, что на этом URL стоит косая черта. Это отправляет вас в корень сайта (без включенного виртуального каталога). Вот почему он работает в IIS 6 при создании веб-сайта - там не используется виртуальный каталог.

Исправление для этого заключается в использовании инфраструктуры маршрутизации для генерации ссылки для кнопки отмены - похоже, вы уже делаете это для других ссылок в вашем приложении.

0 голосов
/ 22 января 2010

Измените ваш HTML на:

<input onclick="location.href='<%= Url.Action("Index", "Transaction") %>'" 
   type="button" value=" Cancel " />
0 голосов
/ 22 января 2010

Это не похоже на настройку сервера, версию ОС или версию iis ... Какой именно URL запрашивает ваша кнопка отмены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...