Привет и спасибо, что искали.
В настоящее время я завершаю контракт на разработку, и клиент хотел бы, чтобы я отправил сборку приложения на его сервер на основе IIS 7, на котором они хотели бы запускать несколько приложений MVC.
Одна из проблем, с которой я столкнулся, заключается в том, что этот сервер уже является субдоменом в их более крупной сети. Итак, если я войду SERVERNAME
в моем браузере он автоматически перенаправляет SERVERNAME.COMPANYNAME.COM
.
Теперь это нормально, если я помещу свое приложение в корневой каталог / веб-сайт по умолчанию. В этом сценарии щелчок по ссылке, запрашивающей admin.html
направляет на `SERVERNAME.COMPANYNAME.COM/admin.html 'как обычно.
НО они хотят, чтобы я поместил приложение в поддомен на этом сервере, чтобы они также могли запускать другие приложения на том же сервере. Так что я предполагаю, что мне нужно MYAPP.SERVERNAME.COMPANYNAME.COM
но я понятия не имею, как это сделать.
Ситуация усложняется тем, что все мое приложение и будущие, которые они хотят установить, основаны на MVC, который перехватывает и перезаписывает URL-адреса. Я предполагаю, что это само о себе позаботится, если я смогу просто успешно поместить свое приложение в субдомен для начала.
MYAPP.SERVERNAME.COMPANYNAME.COM
MYAPP
MYAPP.SERVERNAME
MYAPP.SERVERNAME.COM
MYAPP.COMPANYNAME.COM
Ничего не работает. Я что-то упустил здесь?
Спасибо,
Мэтт
Во-первых, вы тестируете эти привязки с локального сервера? Если да, то две проблемы:
New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -value "1" -PropertyType dword -Force
и перезагрузитесь.После этого я бы сказал в целом, что это связано не столько с MVC, сколько с DNS. Вы можете создать столько веб-сайтов в IIS, сколько захотите (MVC или другие) и придумать любые DNS-имена, которые захотите, при условии, что вы сообщаете сетевым DNS-серверам о совпадении имени и IP, чтобы люди могли их найти.
Похоже, вы привыкли просто размещать сайт на сервере, а затем использовать http://servername
с других компьютеров в сети. Я всегда предпочитаю НИКОГДА не использовать имя хоста для веб-приложений. Я бы создал «DNS-псевдоним» в любом решении DNS, которое использует сетевой администратор (вероятно, Windows DNS Server), чтобы указать «appname» как псевдоним «servername». Затем в привязке веб-сайта я вставляю нужный заголовок узла. Преимущество здесь двоякое: я могу разместить более одного веб-приложения на сервере, а затем я могу переместить это веб-приложение в другое место, не сообщая пользователям (просто измените указатель DNS Alias).
Так что в вашем случае я рекомендую http://myapp
(при условии, что это только для внутреннего использования), а в своей зоне DNS для companyname.com они просто добавляют DNS-псевдоним (запись CNAME) для myapp, чтобы указать на servername.
Если вы думаете, что он будет доступен из брандмауэра через Интернет, тогда вы захотите использовать полное доменное имя, например http://myapp.companyname.com
. Применяются те же шаги для DNS, вам просто нужно также поместить его в Internet DNS.
Я бы НЕ делал поддомены имени веб-сервера, потому что это просто связывает все приложения на нем с этим веб-сервером (вы не можете перемещать их без боли для каждого пользователя, изменяя свои ссылки и привычки). Для myapp.companyname.com или myapp.servername.companyname.com работы не меньше / больше, так почему бы не упростить задачу для всех с помощью myapp.companyname.com. Если они говорят вам, что это упрощает определение местоположения, это то, для чего нужен псевдоним DNS ... просто ping myapp.companyname.com, и псевдоним DNS заставит ping сообщить вам РЕАЛЬНОЕ DNS-имя сервера.