Не вдається запустити веб-сервер IIS Express


310

У мене є рішення asp.net MVC 4. Коли я намагаюся відкрити його за допомогою Visual studio 2012, я отримую таку помилку:

Microsoft Visual Studio

https://localhost:Не вдалося настроїти Інтернет для ASP.NET 4.5. Ви повинні налаштувати цей сайт вручну для ASP.NET 4.5, щоб сайт працював правильно. Не вдалося знайти сервер https://localhost:44300/на локальній машині. Переконайтеся, що локальний сервер IIS налаштований для підтримки захищених комунікацій.

Добре Довідка

Хоча рішення відкривається. Крім того, коли я намагаюся запустити його з меню налагодження, я отримую таку помилку:

 Unable to launch the IIS Express Web server.

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

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

Будь ласка, підкажіть.



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 - поточна сторінка. чи потрібно змінити 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 повинен створити його знову - правильно, цього разу - як тільки ви знову запустите рішення.


EDIT: Командний рядок для видалення папки:

rmdir /s /q "%userprofile%\Documents\IISExpress"

7
Це працювало для мене. Навіть після видалення та перевстановлення IIS Express 8 він зберігав той самий конфігураційний файл, щоб проблема не зникала. Я перейменував папку IISExpress у щось інше, і була створена нова папка з чистою версією конфігураційного файлу.
nthpixel

2
"У папці за замовчуванням" Де саме це? Я взагалі не бачу цього в своєму рішенні.
Корі Огберн

22
@CoreyOgburn має бути в папці Документи та IISExpress, (тобто C: \ Користувачі \ Corey \ Документи \ IISExpress \ Config) та видалити конфігураційну папку. У мене така ж проблема, але це не вирішило мене.
Арне Х. Бітубек

49
Дякую. Просто не забудьте закрити, а потім знову відкрийте VS для перенастроювання IIS Express.
Nick.T

6
@crokusek має відповідь на оновлення VS2015 3. Перейдіть до папки ".vs \ config" у каталозі рішення та видаліть там файл "applicationhost.config".
AJ.

234

Якщо використовується VS2015 або вище

Переконайтесь, що процес iisexpress не працює.

Переконайтесь, що жоден інший процес не використовує потрібний порт. Це можна зробити, виконавши

netstat -a -b

в консолі (як адміністратор, введіть cmdменю "Пуск", клацніть правою кнопкою миші та оберіть "Запустити як адміністратор"). Якщо, наприклад, ви бачите запис, стан якого встановлено або прослуховується, це означає, що цей порт використовує інший процес. Вам потрібно буде припинити цей процес або змінити порт.

Потім видаліть наступний файл

<<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.

Потім перейдіть до {Властивості проекту} -> Веб та натисніть кнопку "Створити віртуальний каталог"

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


1
Це чудово спрацювало на VS2015. Проблема виникла після створення застарілого проекту веб-додатків у базовому рішенні .NET.
Sebazzz

Це спрацювало, .NET core tooling заплутався з IISE: /
Keoz

Я зазвичай живу у світі 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, переконайтеся, що ви не використовуєте однаковий номер порту для обох.
Зіяд Akiki

41

У мене була така ж проблема, але рішення, яке працювало для мене, було іншим.

  1. У VS2013 Відкрито налагодження> Властивості {YourWebsiteName}
  2. Виберіть вкладку "Веб".
  3. У розділі "Сервери" я знайшов "Переопределити кореневу URL-адресу програми". Я це зняв і врятував.

Це було все, що мені було потрібно для запуску справ.


Рекомендую спершу спробувати це рішення. Якщо позначити поле недійсним URL-адресою, ви створите помилку, зазначену в запитанні.
Тимофій

16

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


На жаль, це мені не допомогло.
АГ.

16

Спробуйте виконати наступні дії:

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

Удачі вам!


1
1.Закрийте папку Visual Studio 2.Delete .vs, яка працювала для мене. Якщо я видаляю .vs стартер, коли VS відкритий. Це не працює.
akdora

Видалення папки .vs - це єдине, що працювало для мене. Папка .vs знаходиться всередині папки проекту, але вона за замовчуванням прихована.
Джордж

15

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


14

У моєму випадку проект був на мережевому диску, а видалення папки IIS Express не допомогло, як описано в інших відповідях. Моє вирішення було копіювання проекту на локальний диск, і воно спрацювало!


12

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

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

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

Це працювало для мене і сподіваюся, що воно також має працювати і для вас.


Я спробував кроки, викладені в інших відповідях, але це той, хто працював на мене. Мені довелося перейменувати IISExpressпапку. Видалити це не вдалося мені.
webworm

не працює для мене. все почалося, коли я поспілкувався з https
Toolkit

9

У мене була така ж проблема, причина полягала в тому, що прапор "переосмислити кореневу URL-адресу програми" встановлено у розділі Властивості -> Веб. Після того як я видалив прапор, IIS Express починав нормально із визначеного порту.


8

Здається, вам потрібно зробити певну конфігурацію, як здається, використовуєте SSL; ось покроковий посібник самого Скотта Хензельмана .


@Roblll, я не бачу використання параметра IIS Express, коли я клацну правою кнопкою миші на проекті MVC у VS 2012, я побачив, що в VS 2010. Я намагаюся включити SSL для рішення у вікнах властивостей, і він говорить, що властивість недійсна. Більше того, у файлі applicationhost.config я бачу декілька записів для мого додатка, такі як Webapplication (1), Webapplication (2), Webapplication (3)
DotnetSparrow

У мене була та ж проблема , і подолав її, запустивши VS2012 як адміністратор ( stackoverflow.com/a/13682315 ). Я не надто задоволений цим рішенням, але не зміг знайти жодного іншого.
brudert

У своєму проекті я помітив, що однаковий номер порту використовувався для SSL та non-SSL. Тому я це виправив і помилка пішла.
orad

5

Єдине рішення, яке працювало для мене, - створити ще один тестовий проект. Потім виконайте наступні дії:

  1. Клацніть правою кнопкою миші проект та перейдіть до Властивості -> Веб

  2. Під URL-адресою проекту у розділі Use Local IIS Web Server скопіюйте URL-адресу проекту (http: // localhost: 59002 /) - це з тестового проекту.

  3. Перейдіть до проекту, який видає цю помилку. Клацніть правою кнопкою миші проект та перейдіть до Властивості -> Веб.

  4. Вставте URL-адресу проекту в розділ Use Local IIS Web Server (URL, скопійований з тестового проекту). Закрийте тестовий проект і збережіть.

  5. Видаліть тестовий проект та запустіть проект, який видав помилку. Після цього працює ...

Можливо, не найкращий спосіб, але це був єдиний спосіб, коли я міг змусити це працювати. Я отримав це повідомлення про помилку після того, як я перезавантажив ноутбук (жорсткий диск вийшов з ладу) і отримав усі мої проекти з сервера, де вони розміщені.


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

5

Ділитися цим для майбутніх читачів. Створення віртуального каталогу вручну працювало для мене.

  • Виберіть проект у провіднику рішень
  • Натисніть Alt+Enter
  • Перейдіть у розділ Веб
  • Клацніть Створити віртуальний каталог

4

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

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

Я спробував створити правило брандмауера, щоб дозволити мій порт, після цього VS працював.


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.

Принаймні, ви можете спробувати це, оскільки це працювало на мене.


3

Після двох годин пошуку в Інтернеті я знайшов своє рішення в якості наступних кроків - закрити візуальну студію - видалити папку .vs вашого проекту - відкрити візуальну студію та повторно виконати проект

ця робота для мене добре провести час


2

У нас була та сама проблема з нашими сайтами. Нам вдалося виправити це все в Visual Studio. Ми використовуємо 2012 Ultimate.

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

Щоб виправити це, ми зробили наступні кроки:

  1. Клацніть правою кнопкою миші проект та перейдіть до Властивості -> Веб
  2. Під URL-адресою проекту в розділі Use Local IIS Web Server видаліть "s" з URL-адреси та збережіть. (ЕГ. Перехід від https: // : 44301 до http: // : 44301. Це дозволить працювати наступним кроком)
  3. У Провіднику рішень виберіть Проект і у вікні Властивості (натисніть F4, якщо не відображається) змініть SSL Enabled на False, а потім поверніть на True . Він створить новий порт, який відрізняється від стандартної URL-адреси (у моєму випадку у мене 44301 як мій SSL і 44305 як мій стандарт)
  4. Поверніться назад до Властивості -> Веб та додайте "s" назад до URL-адреси проекту.
  5. F5 і їдь!

Переконайтесь, що прапорець для кореневої URL-адреси додатка не встановлено.


2

перевірити антивірусний брандмауер та дозволити візуальну студію отримати доступ до мережі. наприклад у nod32:

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

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



2

Я сьогодні зіткнувся з цією помилкою. Запуск Win 8.1 та VS 2013. Раптом мої проекти більше не могли працювати, і я отримав повідомлення "Не вдається запустити веб-сервер IIS Express" і більше ніякої інформації.

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

Для мене рішення було видалити .net 3.5 (з панелі керування -> увімкнути / вимкнути функції Windows), перезапустити вікна та знову додати .net 3.5.


2

У мене була така ж проблема, в моєму випадку я просто очистив і потім відновив своє рішення, і це працювало на мене


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. перезапустите візуальну студію (переважно для оновлення параметрів резидентних пам'яті з файлів) та 2. перезавантажте систему (в основному для блокування недійсних файлів). Якщо ваша проблема є такою тимчасовою або самовиправленою, вони зроблять, нічого не змінюючи. Це працювало для мене з перезавантаженням ПК. Крім того, якщо ви працюєте над багатокористувацьким проектом, переконайтеся, що у вас є остання працездатна версія - хтось інший, можливо, помилково перевірив щось недійсне, напр., Файл файлу, і ви без будь-якої причини возиться зі своєю системою. Якщо вони не спрацюють, можливо, вам доведеться змінити деякі параметри, які застрягли, відсутні або потребують модифікації - є багато пропозицій щодо інших відповідей.


1

У мене була подібна проблема під час запуску рішення з VS2012:

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

У мене був вибраний неправильний проект як проект запуску. Я зробив хмарний проект "Запуск" (клацніть правою кнопкою миші на проект -> Встановити як проект запуску) і все почало працювати нормально.


Слід також додати, що URL-адресу запуску потрібно встановити або встановити на "Поточна сторінка" або "Конкретна сторінка" - принаймні встановлено прапорець. У мене було встановлено "Не відкривати сторінку. Почекайте запиту від зовнішньої програми", і у мене виникла ця помилка в результаті додатка до проекту запуску.
vapcguy

@Moumit Ви проголосували за це? Чи можете ви пояснити свій коментар?
scottndecker

1

Серія статей Jason's Shavers тут http://jasonrshaver.com/?tag=/Client+Certificate пояснює, як саме налаштувати запис на сайті applicationhost.config, щоб програма могла запускати або ssl, або стандартний http.

Однією з речей, які він рекомендує, є розміщення двох обов'язкових записів для сайту. Це я і зробив.

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

Він також рекомендує змінити інші налаштування. Він працював на двох моїх трьох машинах. Кожен раз, коли мені кажуть, що вручну налаштовувати сайт у хості додатків, це зазвичай має відношення до прив’язок. (наприклад, використовуючи один і той же порт для кількох веб-додатків.)


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а потім натисніть клавішу Enter


1

У мене було те саме питання. У мене було видалено багато папок під час C:/users/вивільнення місця на моїй машині. Після чого я почав отримувати цю помилку.

Мені просто довелося перезапустити свою машину, і все працювало чудово.


1

Моя проблема потребувала триразового вирішення:

  1. Видаліть папку IISExpress у папці «Документи».
  2. Встановіть веб-проект як проект запуску, клацнувши правою кнопкою миші та виберіть "Встановити як проект запуску", або зробивши це за допомогою властивостей рішення.
  3. Встановіть URL-адресу запуску або встановіть "Поточна сторінка" або "Конкретна сторінка". У мене було встановлено "Не відкривати сторінку. Чекайте запиту від зовнішньої програми", і я повинен був змінити його на "Конкретна сторінка", яку я залишаю порожньою, щоб вона перейшла на головну сторінку мого додатка, перш ніж робота.

1

Моя проблема врешті була вирішена, коли я подивився ключ реєстру IIS Express:

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

У мене був запис, який CustomUserHomeвказував на "Мої веб-сайти", що спричинило хаос.


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.