2016-12-03 2 views
1

Я развернул приложение MVC в IIS. Он отлично работает с VisualStudio, когда я нажимаю run (F5). Url выглядит что-то вродеMVC5 URL Mismatch работает на localhost, но не на удаленной машине

Главная страница: localhost:8080/

Вторая страница будет отображаться, если данные в вводятся и кнопку Логин щелкнул [Только простая форма] -> локальный: 8080/Data/Query/имя_файла = Markus & lname = Jennings

Это была визуальная студия. Если представление визуализируется отлично, и все работает так, как ожидалось.

Теперь, когда я получить доступ к веб-приложение из моего браузера вручную вводить "локальный" сценарий что-то вроде этого:

Главная страница:

localhost/website 

Вторая страница:

localhost/website/Data/Query/?fname=Markus&lname=Jennings 

Как вы можете видеть сайт Слово/каталог всегда есть. Мое приложение опубликовано внутри C: \ inetpub \ wwwroot \ website Итак, я понимаю, почему слово веб-сайта существует. Данные - мой контроллер и Запрос - мой метод действия.

Сейчас идет сложная часть:

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

a.b.c.d/patinput Главная страница отображается. После ввода данных и нажатия логина, адрес, который отображается в:

a.b.c.d/Data/Query/?fname=Markus&lname=Jennings 

Как вы уже догадались «сайт» каталог не присутствует в URL. По мне это должно было похоже

a.b.c.d/website/Data/Query/?fname=Markus&lname=Jennings 

И если я вручную добавить сайт путь/слово, то вторая страница отображается по мере необходимости.

Первая страница - это простая форма входа в систему, в которой я беру имя и фамилию в качестве входных данных и вызываю функцию javascript. Из функции Javascript я вызываю свой контроллер (данные) с параметрами, полученными с HTML-страницы.

Внутри яваскрипта функции Я использую

window.location.href = '/Data/Query/?fname=' + fname + '&lname=' + lname; 

Я попытался addind а '' before/Data/Query ..... Не работает.

Спасибо!

+0

Я думаю, что это не имеет ничего общего с кодом. Вы должны правильно настроить IIS, чтобы не было необходимости добавлять «веб-сайт» к пути. –

+0

Я вижу, что виртуальный каталог не устанавливается при доступе из внешнего мира. Я попытался запустить веб-приложение через VS2013 (на локальном хосте, а не на IIS Express). Он работает безупречно. Однако, когда я пытаюсь получить доступ к веб-сайту из chrome на моем компьютере или другой машине, он терпит неудачу. Перенаправление просто НЕ РАБОТАЕТ !! – user2326079

ответ

2

Я решил это обходным путем. Выглядит примерно так. В моем javascript я сохранил значение window.location.href при первом попадании. Используется localStorage как

localStorage.setItem ("baseUrl", window.location.href);

и всякий раз, когда я хочу, чтобы перейти к другой ActionResult я просто добавить его с помощью этой BaseUrl