Проблема:
ADFS2 требует, чтобы трафик RP Trust использовал https. Трафик RP равен https://localhost:44310/PAWS/
. С учетом сказанного мне нужно, чтобы IIS Express использовал SSL локально. Поэтому, когда я настраиваю проект ASP.NET MVC4 на использование IIS Express.
Когда я проверяю это на TFS (контроль источника), а другой разработчик в команде получает последние. Проект не будет загружаться для них.
В Visual Studio 2012 будут отображаться следующие сообщения об ошибках при открытии решения:
Это связано с тем, что IIS Express не будет автоматически читать файл проекта и добавлять привязку HTTPS к конфигурации сайта. Это конфигурация, которую VS добавляет к файлу applicationhost.config IIS Express
<site name="PAWS.Web-Site" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\larsene\Documents\My Web Sites\PAWS.Web-Site14" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:44310:localhost" />
</bindings>
</site>
Но мне нужно, чтобы протокол привязки был установлен на HTTPS так:
<binding protocol="https" bindingInformation="*:44310:localhost" />
Я могу либо вручную ввести это в applicationhost.config. Или я могу запустить appcmd.exe, чтобы настроить его.
"%ProgramFiles(x86)%\IIS Express\appcmd.exe" set site /site.name:PAWS.Web-Site /bindings:https/*:44310:localhost
Но любой из этих двух методов - это не то, что я хочу. Я не хочу объяснять каждому разработчику, который работает над этим проектом, чтобы вручную отредактировать свои настройки IIS Express, прежде чем они смогут даже загрузить проект.
Как воссоздать проблему:
Это легко воссоздается при первом закрытии VS2012. Затем удалите папку конфигурации для IIS Express, расположенную в
%USERPROFILE%\Documents\IISExpress
а затем откройте VS2012, а также откройте решение для проекта MVC4, настроенного на использование IIS Express с https. Теперь VS2012 не сможет загрузить проект и не будет жаловаться на отсутствие защищенных привязок.
Что я делаю неправильно или как я могу исправить это, чтобы люди, которые получили последний в моем проекте, смогут его запустить?