Невозможно запустить веб-сервер IIS Express

310

У меня есть решение asp.net MVC 4. Когда я пытаюсь открыть его с помощью Visual Studio 2012, я получаю следующую ошибку:

Microsoft Visual Studio

Не https://localhost:удалось настроить Web для ASP.NET 4.5. Вы должны вручную настроить этот сайт для ASP.NET 4.5, чтобы сайт работал правильно. Не удалось найти сервер https://localhost:44300/на локальной машине. Убедитесь, что локальный сервер IIS настроен для поддержки безопасной связи.

OK Помощь

Хотя решение открывается. Кроме того, когда я пытаюсь запустить его из меню отладки, я получаю следующую ошибку:

 Unable to launch the IIS Express Web server.

The start URL specified is not valid. https://localhost:44300/

и я не могу отладить код. как избавиться от этих ошибок и отладить / запустить веб-сайт с VS 2012?

Пожалуйста, предложите.


DotnetSparrow
источник
4
Сообщения об ошибках довольно ясно о том, что не так: 1) You must manually configure this site for ASP.NET 4.5 in order for the site to run correctly.и 2) The start URL specified is not valid.. Также вы, кажется, используете HTTPS; AFAIK IIS Express не поддерживает это (и если это произойдет, вам, вероятно, потребуется настроить его, следовательно, Make sure the local IIS server has been configured to support secure communicationsчасть). Изменить: Кажется, он поддерживает SSL: riii.nl/apr5u , пошаговое руководство от самого Гансельмана!
RobIII
1
@Robel, я вижу, что в свойствах сайта, на вкладке приложения, целевой фреймворк равен 4.5, а на веб-вкладке Start Action is Current Page. я должен изменить URL проекта на localhost: 44300 ? Я использую IIS Express 8
DotnetSparrow
Это была настройка брандмауэра :(
Moumit
1
Мне удалось решить эту проблему следующим образом - 1) Visual Studio - Параметры -> Поиск - IIS 2) Установите флажок «Использовать 64-разрядную версию IIS Express для веб-сайтов и проектов».
NanaFadanvis
Я думаю, что это поможет stackoverflow.com/a/54222339/2923956 .
Biswajit Panday

Ответы:

377

У меня была точно такая же проблема.
Причина - плохой конфигурационный файл IIS.

Попробуйте удалить автоматически созданную IISExpressпапку, которая обычно находится %userprofile%/Documents, например, в C:\Users\[you]\Documents\IISExpress.

Не волнуйтесь, VS должен создать его снова - правильно, на этот раз - как только вы снова запустите свое решение.


РЕДАКТИРОВАТЬ: Командная строка для удаления папки:

rmdir /s /q "%userprofile%\Documents\IISExpress"
Иегуда Шапира
источник
7
Это сработало для меня. Даже после удаления и переустановки IIS Express 8 он сохранил тот же файл конфигурации, поэтому моя проблема осталась. Я переименовал папку IISExpress во что-то другое, и была создана новая папка с чистой версией файла конфигурации.
nthpixel
2
"В вашей папке по умолчанию" Где именно это? Я не вижу это в моем решении вообще.
Кори Огберн
22
@CoreyOgburn должен находиться в папке «Документы» и IISExpress (например, C: \ Users \ Corey \ Documents \ IISExpress \ Config) и удалить папку конфигурации. У меня та же проблема, но это не помогло мне.
Арне Х. Битубекк
49
Спасибо. Только не забудьте закрыть, а затем снова открыть VS, чтобы перенастроить IIS Express.
Nick.T
6
У @crokusek есть ответ для обновления 3 VS2015. Перейдите в папку «.vs \ config» в каталоге решений и удалите там файл «applicationhost.config».
AJ.
234

Если используется VS2015 или выше

Убедитесь, что процесс iisexpress не запущен.

Убедитесь, что другой процесс не использует нужный порт. Вы можете сделать это, выполнив

netstat -a -b

в консоли (как администратор, введите cmdв меню «Пуск», щелкните правой кнопкой мыши и выберите «Запуск от имени администратора»). Если вы видите запись, состояние которой ESTABLISHED или LISTENING, например, это означает, что какой-то другой процесс использует этот порт. Вам нужно будет прекратить этот процесс или изменить порт.

Затем удалите следующий файл

<<path_to_solution_folder>>\.vs\config\applicationhost.config

обратите внимание, что .vsпапка может быть скрыта

затем найти <<project-name>>.csproj.userфайл, откройте его с помощью текстового редактора (блокнот) и убедитесь , что IISUrlпод WebProjectPropertiesвыполнено с возможностью , <IISUrl>http://localhost:XXXXX/</IISUrl>где XXXXXнаходится нужный порт.

после этого и попытки запустить приложение вы можете получить

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

Затем перейдите в {Project Properties} -> Web и нажмите кнопку "Создать виртуальный каталог"

введите описание изображения здесь

Михаил Шишков
источник
1
Это отлично работало на VS2015. Проблема возникла после создания устаревшего проекта веб-приложения в базовом решении .NET.
Sebazzz
Это сработало, основные инструменты .NET
напутали в
Обычно я живу в мире OWIN / NancyFx, поэтому, когда мне пришлось сделать проект Web API после перерыва, я был озадачен, пока не увидел этот ответ. - Приятно знать этот факт - спасибо !!!
code4life
работа на VS 2915 @ mihail я ничего не удалял, просто создал виртуальный каталог ... зачем он нужен
abdoutelb
4
@AbdouTelb проверьте это iis.net/learn/get-started/planning-your-iis-architecture/… , удалив файл .config, вы в основном гарантируете, что файл будет воссоздан vs и, следовательно, любые проблемы, связанные с ним (и их может быть много) исчезнут. Этот файл используется IIS Express так же, как IIS использует свой собственный файл applicationhost.config, поэтому он аналогичен восстановлению заводских настроек по умолчанию. Одного только создания виртуального каталога недостаточно для устранения проблем, которые могут скрываться в файле. В твоем случае тебе просто повезло :)
Михаил Шишков
85

@roblll понял это правильно. Но для тех из вас, кто не хотел искать ответ, вот он:

  1. Закройте Visual Studio (возможно, нет необходимости, но это не повредит).
  2. Перейдите в папку «Документы». Это где мой каталог конфигурации IISExpress.
  3. В папке config есть файл, который называется хостом приложения. Открой это.
  4. Поиск по названию вашего проекта. Он должен был быть добавлен туда Visual Studio, когда он бомбил в ваших предыдущих попытках.
  5. Обратите внимание, что есть привязка для HTTP с портом, который вы собираетесь использовать для https.

    //Change this:
    <binding protocol="http" bindingInformation="*:44300:localhost" />
    
    //to this:
    <binding protocol="https" bindingInformation="*:44300:localhost" />
    

Имейте в виду, что Visual Studio мог предоставить другие порты, чем вы ожидали. Просто убедитесь, что порты в привязке соответствуют тому, что находится на вкладке Web свойств вашего проекта.

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Якоб Лозье
источник
5
Я фактически открывал проект, разработанный в другом месте, изменив конфигурацию протокола для проекта на https и перезагрузив проект, избавился от ошибки. Спасибо @Jacob!
Джеффри
Только удаление папки IISExpress не решило для меня. После удаления, когда я перезапустил VS и открыл этот проект, появилось диалоговое окно с ошибкой, которое было решено только после этого. Этот проект, который я скачал на странице asp.net , был примером проекта.
Алиссон
Кстати, если у вас есть привязки http и https, убедитесь, что вы не используете один и тот же номер порта на них обоих.
Зиад
41

У меня была та же проблема, но решение, которое работало для меня, было другим.

  1. В VS2013 открыт свойства отладки> {YourWebsiteName}
  2. Выберите вкладку «Интернет».
  3. В разделе «Серверы» я обнаружил «Переопределить корневой URL-адрес приложения». Я снял флажок и сохранил.

Это было все, что мне нужно, чтобы все заработало.

centralscru
источник
Я рекомендую сначала попробовать это решение. Установка флажка с неверным URL создаст ошибку, упомянутую в вопросе.
Тимоти
16

Та же проблема, но необходимо запустить VS2013 в режиме администратора .

мат
источник
К сожалению, это не помогло мне.
Ах.
16

Попробуйте следующие шаги:

  1. удалить IISExpress папку как сказал @Yehuda Шапира
  2. перезагрузить компьютер
  3. удалить папку .vs в проекте

Удачи!

sknight
источник
1
1. Закройте Visual Studio 2. Удалите папку .vs, которая работает для меня. Если я удалю .vs dolder, когда открыт VS. Это не работает.
akdora
Удаление папки .vs - единственное, что сработало для меня. Папка .vs находится внутри папки проекта, но по умолчанию она скрыта.
Джордж
15

У меня была та же проблема, и затем я открыл диспетчер задач -> процессы, а затем убил процесс iisexpress.exe. После этого я попытался запустить приложение и смог успешно запустить его

Vinu
источник
14

В моем случае проект находился на сетевом диске, и удаление папки IIS Express не помогло, как описано в других ответах. Мой обходной путь - копирование проекта на локальный диск, и это сработало!

Амир Чатрбар
источник
12

У меня была такая же проблема, спасибо @Jacob за предоставленную информацию об этом.

Причина - неправильная запись для вашего проекта в конфигурационном файле applicationhost, расположенном по адресу

C:\Users\(yourusername)\Documents\IISExpress\config 
  1. Закройте все решения Visual Studio.
  2. Переименуйте папку IISExpress в какую-нибудь IISExpress-копию (вместо удаления вы можете получить ее копию)
  3. Теперь снова откройте VS и соберите / отладьте проект, теперь вы увидите папку IISExpress, созданную для вас снова с правильной конфигурацией.

Это сработало для меня и надеюсь, что это должно сработать и для вас.

user2732247
источник
Я попробовал шаги, изложенные в других ответах, но это тот, который работал для меня. Мне пришлось переименовать IISExpressпапку. Удаление это не работает для меня.
веб-червь
не работает для меня все началось, когда я испортил https
Toolkit
9

У меня была та же проблема, причина была в том, что флаг «Переопределить корневой URL-адрес приложения» был установлен в Свойствах -> Веб. После того, как я удалил флаг, IIS Express запускался нормально с определенным портом.

vm370
источник
8

Кажется, вам нужно выполнить некоторые настройки, так как вы используете SSL; Вот пошаговое руководство самого Скотта Хансельмана .

RobIII
источник
@Roblll, я не вижу опцию Использовать IIS Express, когда я щелкаю правой кнопкой мыши по своему проекту MVC в VS 2012, я видел это в VS 2010. Я пытаюсь включить SSL для решения в окнах свойств, и он говорит, что свойство недействительно. Более того, в файле applicationhost.config я вижу несколько записей для моего приложения, таких как Webapplication (1), Webapplication (2), Webapplication (3)
DotnetSparrow
У меня была та же проблема, и я преодолел ее, запустив VS2012 с правами администратора ( stackoverflow.com/a/13682315 ). Я не слишком доволен этим решением, но не могу найти других.
Брудерт
В моем проекте я заметил, что один и тот же номер порта использовался для SSL и не-SSL. Я исправил это, и ошибка исчезла.
Орад
5

Единственное решение, которое сработало для меня, - это создать еще один тестовый проект. Затем выполните следующие шаги:

  1. Щелкните правой кнопкой мыши по проекту и перейдите в Свойства -> Интернет

  2. Под URL-адресом проекта в разделе «Использование локального веб-сервера IIS» скопируйте URL-адрес проекта (http: // localhost: 59002 /) - это из тестового проекта.

  3. Перейдите к проекту, который дает эту ошибку. Щелкните правой кнопкой мыши по проекту и перейдите в Свойства -> Интернет.

  4. Вставьте URL-адрес проекта в раздел «Использование локального веб-сервера IIS» (URL-адрес скопирован из тестового проекта). Закройте тестовый проект и сохраните.

  5. Удалите тестовый проект и запустите проект, который дал ошибку. Работает после этого ...

Возможно, не самый лучший способ, но это был единственный способ заставить это работать. Я получил это сообщение об ошибке после того, как перезагрузил свой ноутбук (сбился жесткий диск) и получил все свои проекты с сервера, где они размещены.

Kerieks
источник
На самом деле я не знаю, что я сделал с моим решением, но это был единственный способ исправить это. Я даже попытался возиться с командой netsh, удалив папку IISExpress, запустив VS в режиме администратора, и больше ничего не работало. Я не знаю, где еще отображается url: port get, но получение URL-адреса другого проекта показалось мне единственным решением.
Серхио А.
5

Поделиться этим для будущих читателей. Вручную создание виртуального каталога работало для меня.

  • Выберите проект в обозревателе решений
  • Нажмите Alt+Enter
  • Перейти в раздел Web
  • Нажмите Создать виртуальный каталог
Мохаммед Замир
источник
4

В моем случае после того, как я разрешил внешний запрос на свой веб-сайт IIS Express и настроил брандмауэр Windows для разрешения iisexpress.exe, я не могу запустить его из Visual Studio 2013. Я все еще могу запустить его из командной строки, и он обслуживает локальный и внешний просит хорошо.

C:\Program Files (x86)\IIS Express>iisexpress /site:MyWebSiteName

Я попытался создать правило брандмауэра, чтобы разрешить мой порт, после этого VS работал.

deerchao
источник
3

У меня была такая же проблема с VS 2013, и даже после всех возможных попыток она не работала. Моя проблема была решена с помощью:

- In control panel (Program and Features) I found that all of the IIS related features were unchecked.I finally checked all of those and restarted my system.
- Then I started my VS 2013 as administrator and thats it everything
   worked fine then.

По крайней мере, вы можете попробовать это, так как это сработало для меня.

Saroj
источник
3

После двухчасового поиска в Интернете я нашел свое решение в виде следующих шагов - закрыть визуальную студию - удалить папку .vs вашего проекта - открыть визуальную студию и перезапустить проект

это работа для меня хорошо провести время

Али Садри
источник
2

У нас была такая же проблема с нашими сайтами. Мы смогли исправить все это в Visual Studio. Мы используем 2012 Ultimate.

Основная проблема, которую мы видели, заключалась в том, что с включенным SSL по какой-то причине VS назначал один и тот же порт для стандартных и безопасных URL-адресов. Эта проблема, казалось, возникла, когда мы извлекали код из TFS.

Чтобы исправить это, мы предприняли следующие шаги:

  1. Щелкните правой кнопкой мыши по проекту и перейдите в Свойства -> Интернет
  2. Под URL-адресом проекта в разделе « Использование локального веб-сервера IIS » удалите «s» из URL-адреса и сохраните. ( Например, перейдите с https: // : 44301 на http: // : 44301. Это позволит следующему шагу работать)
  3. В обозревателе решений выберите «Проект» и в окне «Свойства» (нажмите F4, если не отображается) измените « SSL Enabled» на « False», а затем на « True» . Он создаст новый порт, который отличается от стандартного URL (в моем случае у меня 44301 в качестве моего SSL и 44305 в качестве моего стандарта)
  4. Вернитесь обратно в Свойства -> Веб и добавьте "s" обратно в URL проекта.
  5. F5 и катайся!

Убедитесь, что флажок « Переопределить корневой URL-адрес приложения» снят.

JimmyV
источник
2

проверьте антивирусный брандмауэр и разрешите доступ visual studio к сети. например в nod32:

goto setting (f5) -> network->personal firewall->rules and zones

в " zone and rule editor" нажмите " setup" и найдите vs 2010или 12или ... и разрешите доступ к сети.

хади аб
источник
2

После отключения брандмауэра я смог запустить его без проблем.

Махалинг Хубба
источник
2

Я столкнулся с этой ошибкой сегодня. Запуск Win 8.1 и VS 2013. Внезапно мои проекты перестали работать, и я получил сообщение «Невозможно запустить веб-сервер IIS Express» и никакой дополнительной информации.

Через некоторое время я обнаружил, что все проекты, которые не удалось запустить IIS Express, были запущены .net 3.5. Проекты с более поздними версиями запускались нормально.

Решением для меня было удалить .net 3.5 (с панели управления -> включить / выключить функции Windows), перезапустить Windows и снова добавить .net 3.5.

fefferoni
источник
2

У меня была такая же проблема, в моем случае я просто почистил, а затем пересобрал свое решение, и оно сработало для меня

RCanhestro
источник
2

Ну, ни один из вышеупомянутых шагов не работал для меня. В моем случае в моем applicationhost.configфайле как-то отсутствовали следующие две строки кода

 <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
    <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

Надеюсь, что это может помочь кому-то.

Аншуман Ясротия
источник
2

Прежде чем попробовать что-либо еще, убедитесь, что вы: 1. перезапустите Visual Studio (в основном для обновления параметров резидентной памяти из файлов) и 2. перезапустите систему (в основном для недопустимой блокировки файлов). Если ваша проблема носит временный характер или решается самостоятельно, они могут ничего не менять. У меня сработало с перезагрузкой ПК. Также, если вы работаете над многопользовательским проектом, убедитесь, что у вас установлена ​​последняя работоспособная версия - кто-то другой мог проверить что-то недействительное по ошибке, например, в файле проекта, и вы без причины повредите свою систему. Если это не сработает, то вам, вероятно, нужно изменить некоторые настройки, которые застряли, отсутствуют или нуждаются в модификации - есть много предложений по другим ответам.

Стефанос Зилеллис
источник
1

У меня была похожая проблема при запуске моего решения от VS2012:

Unable to launch the IIS Express Web server.  
The start URL specified is not valid. https://localhost:44301/

Я выбрал неверный проект в качестве проекта запуска. Я сделал облачный проект автозагрузкой (щелкнув правой кнопкой мыши по проекту -> Установить как стартовый проект), и все стало работать нормально.

scottndecker
источник
Также следует добавить, что при запуске URL-адрес должен быть установлен или установлен на «Текущая страница» или «Определенная страница» - по крайней мере, проверено. У меня было установлено «Не открывать страницу. Ждать запроса от внешнего приложения», и в результате у меня возникла эта ошибка, в дополнение к проблеме запуска проекта.
vapcguy
@ Ты не голосовал за это? Можете ли вы объяснить свой комментарий?
scottndecker
1

Серия статей Джейсона Шейвера здесь http://jasonrshaver.com/?tag=/Client+Certificates точно объясняет, как настроить запись сайта applicationhost.config, чтобы приложение могло работать в ssl или в стандартном http.

Он рекомендует размещать две обязательные записи для сайта. Это то, что я сделал.

            <bindings>
                <binding protocol="http" bindingInformation="*:59945:localhost" />
                <binding protocol="https" bindingInformation="*:44300:localhost"/>
            </bindings>

Он также рекомендует изменить другие настройки. Он работал на двух из трех моих машин. Каждый раз, когда мне говорят, что нужно вручную настроить сайт на хосте приложения, это обычно связано с привязками. (пример использования одного и того же порта для нескольких веб-приложений.)

user1161391
источник
1

У меня возникла та же проблема после установки Visual Studio 2013 Update 3.
VS 2013 can not load Microsoft.VisualStudio.TraceLogPackage.dll
Unable to launch the IIS Express Web server

Моя проблема была решена с помощью следующих шагов:

1. Восстановить Visual Studio 2013 Update 3
2. Запустить Developer Command Promptкак администратор.
3. Введите, devenv.exe /setupзатем нажмите ввод

Мохаммад Даян
источник
1

Я была такая же проблема. Я удалил много папок по C:/users/пути, чтобы освободить место на моей машине. После чего я начал получать эту ошибку.

Мне просто пришлось перезагрузить машину, и все заработало нормально.

Ясир Шейх
источник
1

Моя проблема требовала 3-х кратного решения:

  1. Удалите папку IISExpress в папке «Документы».
  2. Установите веб-проект в качестве запускаемого проекта, щелкнув его правой кнопкой мыши и выбрав «Установить в качестве запускаемого проекта», или сделав это через свойства своего решения.
  3. Установите начальный URL-адрес или установите значение «Текущая страница» или «Определенная страница». У меня было установлено «Не открывать страницу. Ждать запроса от внешнего приложения», и мне пришлось изменить его на «Определенную страницу», которую я оставляю пустым, чтобы она переходила на домашнюю страницу моего приложения, прежде чем она будет работай.
vapcguy
источник
1

Моя проблема была в конечном итоге решена, когда я посмотрел на раздел реестра IIS Express:

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

У меня была запись, CustomUserHomeуказывающая на мои веб-сайты, которая вызывала хаос.

AndyKenZ
источник
1

Я бы настроил общий доступ к подключению к Интернету на своей машине для виртуальных машин. Я выключил его и смог отладить в Visual Studio 2015 . Однако для последовательной отладки после перезагрузки мне нужно было настроить службу общего доступа к подключению Интернета на запуск вручную, даже если ни в одном из моих подключений к Интернету не был включен общий доступ к подключению Интернета .

Джайлс Робертс
источник