Отладка приложения MVC в VS2012 пытается запустить IIS Express дважды
UPDATE
Я уверен, что это ошибка Visual Studio без очевидного решения. Я столкнулся с рядом людей, у которых такая же проблема. Я отправил туда ошибку с Microsoft:
http://connect.microsoft.com/VisualStudio/feedback/details/778864/vs2012-is-spawning-two-iisexpress-processes-when-attempting-to-debug
Если у вас такая же проблема, как описано ниже, пожалуйста, проголосуйте за билет с ошибкой, чтобы привлечь больше внимания.
Всякий раз, когда я пытаюсь отлаживать приложение MVC3 (или MVC4) в Visual Studio 2012, настроенное для работы в IIS express (версия 8), я получаю следующую ошибку:
![enter image description here]()
Здесь работает кикер: IIS Express, хотя Visual Studio так не думает, и отладчик не может подключиться. Открывается лоток IIS Express, и я четко вижу, что все настроенные веб-сайты запущены:
![enter image description here]()
Как ни странно, системный лоток IIS Express сообщает о некоторых ошибках при запуске IIS Express. Вот что он говорит:
![enter image description here]()
Это серьезная WTF. Он сообщает, что 8080 используется процессом IIS Express - тем, который только что был запущен Visual Studio. Таким образом, Visual Studio пытается запустить IIS дважды, и, когда он, вопреки ожиданиям, не работает во второй раз, отладчик выполняет поручительство. Я должен отметить, что перед запуском конфигурации отладки в Visual Studio я абсолютно уверен, что никакие процессы IIS Express уже не выполнялись. Я использовал Process Monitor для проверки того, что Visual Studio на самом деле пытается запустить IIS Express дважды:
![enter image description here]()
Обратите внимание, что на скриншоте выше вы можете четко видеть веб-сайты, работающие на IIS Express PID 4732. PID 4924 - это вторая неудачная попытка запуска IIS Express.
Эта проблема первоначально возникала при установке Windows 7. Я полностью переформатировал, установил новую копию VS2012 и получил ту же проблему. Я пошел дальше и переформатировал, установил Windows 8 и новую копию VS2012, и проблема не устранена.
Я создал совершенно новые проекты MVC3 и MVC4. Ничего не исправляет.
Я вырываю здесь свои волосы. Любая помощь будет принята с благодарностью.
Ответы
Ответ 1
w.Brian, я следил за этим сообщением с самого начала, и у меня была такая же проблема довольно долгое время, и я только что обнаружил, что вызывает проблему для меня. Я смог воспроизвести и исправить ошибку для себя следующим образом:
Причина, по которой VS2012 запускает iis express дважды, связана с присоединением к домену и входом в учетную запись домена. Как только я вошел в полностью локальную учетную запись администратора, я смог запустить и отладить приложение MVC4 без каких-либо проблем. Это использует Windows 8 Pro, VS2012 Update 1, прикрепленный к моему домену, и никаких других программ/расширений/конфигурации. Полностью чистая установка.
Ответ 2
Привет, возможно, эти решения могут вам помочь.
- Управление RuntimeVersion = "4.0" до "4.0.30319"
Пример:
<applicationPools>
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319″ managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /><br/><br/>
ссылка: Проблема: Visual Studio 2012 > "Не удалось запустить веб-сервер IIS Express"
Под элементом/выделите строку
<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
В элементе//закомментируйте строку
<add name="HttpLoggingModule" lockItem="true" />
После сохранения изменений попробуйте перезапустить iis express.
ссылка: из форума stackoverflow: Невозможно запустить веб-сервер IIS Express
Ответ 3
Щелкните правой кнопкой мыши проект MVC/* все по одному */
перейти к объектам недвижимости
перейдите на веб-вкладку
вам необходимо установить флажок "Использовать локальный веб-сервер IIS"
в текстовом поле ниже убедитесь, что нет проектов с тем же портом, который в вашем случае 8080
Ответ 4
Посмотрите здесь ответ:
http://forums.asp.net/t/1953087.aspx?VS+2013+Unable+to+launch+the+IIS+Express+Web+Server
Это было странное поведение на машине под Windows 8, когда "bg" был частью имени пользователя
Ответ 5
Возможно, я немного опоздаю на вечеринку - здесь мои две гроши:
a) http://saintgimp.org/2012/05/03/fixing-the-error-unable-to-launch-the-iis-express-web-server-failed-to-register-url-access-is-denied/
b) http://abhijitjana.net/2010/07/20/unable-to-start-web-site-on-iis-process-can-not-access-the-file-because-its-being-used-by-another-process-how-to-resolve/
Сводка: есть URL-адрес для текущего порта (обычно Skype)
Ответ 6
На всякий случай, у вас есть 127.0.0.1 localhost
, определенный в папке /system 32/drivers/stc/hosts? Otherwize, вы можете проверить здесь, это может быть только ключ.
Приветствия
Ответ 7
У меня была такая же проблема в Windows 8 и Windows 8.1 с использованием моей учетной записи домена. В моем случае изменение пути к папке "Документы" (щелкните правой кнопкой мыши по папке "Документы" → "Свойства" → "Местоположение" ) из C:\Users\имя_пользователя\Документы в D:\Документы помогли
Ответ 8
На этой неделе я испытал эту идентичную проблему: запускается IIS Express, но VS жалуется, что он не смог запустить IIS Express, и отладка завершилась неудачно.
Я, наконец, решил проблему, применив исправление июня 2014 года к IIS Express:
Мы (моя ИТ-поддержка и я) нашли это исправление после спотыкания и после очень маловероятной проблемы. По-видимому, MS проверила ошибку в IISExpress 8.0, что приводит к ее неправильной работе, если какая-либо часть имени приложения содержит комбинацию букв "bg" (мое имя пользователя начинается с bg):
Примечание. В обновлении VS 2013 версии 4 уже содержится это исправление, и, возможно, некоторые люди имели успех, просто обновив VS 2013.
Некоторые другие ссылки, которые мы нашли относительно проблемы (вам, возможно, придется немного отскочить, чтобы найти тему):
Ответ 9
Что работало в моей ситуации, было выгрузить проект, а затем отредактировать файл csproj. Я удалил все разделы, касающиеся IIS и IISEXPRESS. Затем я перезагрузил проект и снова выбрал USE IIS EXPRESS из свойств проекта. Затем он работал.
Ответ 10
Сегодня я столкнулся с одинаковой проблемой (IISExpress пытается запустить дважды и не удается выполнить команду "Отладка в Visual Studio" ), помогая другому разработчику с сайта веб-форм. Попробовав несколько решений, мы обнаружили, что мы можем решить проблему, выполнив следующие действия:
- Создание нового, пустого решения Visual Studio
- Добавление "существующего сайта", указывающего на новую, пустую папку
- Копирование содержимого существующего (нерабочего) веб-сайта в новую созданную нами папку.
Простое удаление и повторное добавление веб-сайта в исходное решение не помогло, а также не создало новое решение и не добавило обратно существующий сайт. Я могу легко запустить IISExpress из командной строки.
После выполнения сравнения файлов .SLN до и после, я считаю, что проблема кроется. Поскольку я нашел обходной путь, я не потратил много дополнительного времени на это. Очевидно, что воссоздание всего решения с нуля может быть не вариантом для крупных проектов (наш был очень маленьким), но, надеюсь, это, по крайней мере, указывает в правильном направлении.
Ответ 11
Конечно, есть два экземпляра сайта FrontEnd
, но обратите внимание, что один экземпляр HTTP и другой HTTP S.
Можно получить два экземпляра, когда для параметра SSL Enabled
установлено значение True в свойствах веб-сайта, а вкладка Project Url
на веб-странице установлена на HTTP-адрес.
Сделайте им оба HTTP (или HTTPS), и это может исправить.