Мы только что обнаружили проблему с нашим новым «облачным» хостингом. В основном NAT/port forward сконфигурирован, потому что они не разрешают множественные внутренние IP-адреса, чтобы SSL-сертификаты могли выполняться для нескольких сайтов.MVC3 генерирует URL-адреса, включая номер порта, как его остановить
Это вызывает проблему с любым маршрутом MVC, который генерируется, когда протокол также указан. Также, если попытка перейти на URL-адрес, требующий входа в систему, параметр ReturnUrl в URL-адресе переадресованного https также содержит номер порта.
Вопрос: есть ли способ сказать MVC, чтобы он никогда не включал номер порта, даже если он присутствует, за исключением использования перегрузок методов/маршрутов UrlHelpers, которые позволяют вам указать домен и, следовательно, вручную отключить номер порта.
В случае, если это не очевидно из сказанного выше, что процесс запроса, как, вот небольшой пример:
- Пользователи браузер делает запрос на сайт
- пересылает Серверные же URL, но с номером порта, прикрепленного
- страница сгенерирована
- Ответ отправлен обратно в браузер пользователей.
- Пользователь регистрируется, но теперь URL-адрес возврата имеет порт, поэтому, когда он перенаправляет пользователя, страница не может быть отображена.
Из-за перенаправления портов malarkey это, по-видимому, вызывает перенаправление MVCs. Не зная технической стороне сервера так хорошо Я не уверен, что это просто хостинг-компания, которая не настраивает что-то правильно в IIS или вещах NAT, или есть просто некоторые материалы web.config, которые нуждаются в настройке, чтобы MVC мог генерировать правильные URL-адреса, как будто этот порт malarkey не существует.
Любые советы или указатели наиболее оценены.
Ух, если у вас есть клиентский скрипт, это тоже будет головной болью. Возможно, люди, работающие в [Server Fault] (http://serverfault.com/), могут помочь на стороне конфигурации ... со своей стороны, я не понимаю, почему порт добавлен в первую очередь - toggle "' 443' и '80' (http/s)? – EdSF
Нет, это связано с тем, что у вас есть один сервер, на котором размещаются несколько сайтов, но для целей сертификатов SSL ему нужен IP-адрес, и вы не можете иметь тот же IP-адрес, который был зарегистрирован для нескольких доменов. Поскольку на облачном сервере разрешено только 1 внутренний IP-адрес, пересылка с номером порта для разграничения была единственным способом, но это вызвало упомянутые проблемы. Однако см. Мой собственный ответ - фу! – Peter