Я разработал приложение на платформе ASP.NET MVC 3 (C # / Razor), и пока все работает нормально. Вчера я решил установить IIS 7 (кажется, 7.5?) На моем компьютере разработки (Windows 7), чтобы посмотреть, не возникнут ли какие-либо проблемы при развертывании на реальном сервере. Ну, была пара, на 3 из которых я не могу найти ответа (а может, и нет ответа).
Первая проблема (возможно, ее следует спросить в Stack Overflow)
В Visual Studio 2010, когда я перехожу к свойствам проекта в раздел «Интернет», я переключил конфигурацию «Серверы» на «Использовать локальный веб-сервер IIS» и снял флажок «Использовать IIS Express». Однако всякий раз, когда я нажимаю «Создать виртуальный каталог», я получаю сообщение об ошибке, что Visual Studio не может настроить Интернет для ASP.NET 4.0, и просил меня сделать это вручную. Тем не менее, он создает виртуальный каталог и, похоже, работает до этого момента (но веб-сайт не загружается, что приводит меня к моему второму вопросу). В Visual Studio я также не могу запустить веб-сайт в отладке (или даже в выпуске), но это не должно быть проблемой, поскольку мне нужно только скомпилировать (и, возможно, перезапустить пул приложений / веб-сайт).
Вторая проблема
Следуя вышеуказанным шагам, я получил ошибку 403.18 Forbidden. (Извините за то, что не опубликовал сообщение об ошибке, но это не принесет особой пользы, так как оно на французском ... Проклятый закон Квебека 101, вынуждающий компании покупать все на французском). Затем я попытался сделать «Вручную» (но настроил с функция публикации Visual Studio) настройка веб-приложения, которое будет развертывать приложение непосредственно в корне веб-приложения, а не в виртуальном каталоге. Это решило проблему, но я все еще хочу, чтобы он работал в виртуальном каталоге.
Проблема третья - РЕШЕНА
При запуске приложения локально с помощью http://localhost/
, ему удается использовать мою учетную запись Windows без запроса. Когда я обращаюсь к приложению с помощью моего IP-адреса в локальной сети (локально или удаленно) или даже моего IP-адреса с обратной связью (127.0.0.1), оно запрашивает логин и пароль. Я считаю, что включение ASP.NET Impersonate будет пытаться использовать учетную запись для входа перед попыткой входа в систему, но я, очевидно, ошибаюсь, если только я не сделал что-то должным образом. Может ли кто-нибудь меня облегчить на этом?
Большое спасибо,
Pluc
(Ps. Я не уверен, какой файл конфигурации публиковать, поэтому, если какая-либо информация отсутствует, сообщите мне, какой именно файл вам нужен, в комментарии, и я отредактирую свой вопрос, чтобы добавить необходимую информацию)
Решение третьей проблемы
Просто проблема заключалась в том, что браузер не обнаруживал IP-адрес как веб-сайт интрасети. Добавьте IP-адрес на надежный веб-сайт или используйте FQN (я использовал имя компьютера), и он работает.
Что касается № 3,
Internet Explorer попытается обнаружить адреса в интрасети, выполнив поиск "." в URL.
Вот почему вы получаете запрос при доступе по IP (даже 127.0.0.1, он имеет точки).
Вы можете вручную добавлять сайты в зону интрасети, и это должно позволить работать аутентификации Windows.