Проект веб-додатків […] налаштований на використання IIS. Не вдалося знайти веб-сервер […].


285

У моєму файлі рішення є веб-проект, який "недоступний", коли я відкриваю рішення. Коли я клацну правою кнопкою миші на веб-проекті та перезавантажую проект, я отримую таку помилку:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Я не вручну налаштовував віртуальні каталоги для цього веб-додатку.

За колегами, Visual Studio повинен запропонувати мені створити віртуальні каталоги, але я не отримую запит.

Я встановив VS2010 перед встановленням IIS на своїй машині розробки.

Ось моя настройка машини розробки:

  • Windows 7 Enterprise
  • Пакет оновлень 1
  • 64 бітова ОС
  • Пакет оновлень Visual Studio 2010 Enterprise 1
  • Версія 7.5 IIS

Відповіді:


87

Коли це трапляється, найпростіше рішення - це зробити віртуальний каталог вручну.

Перш за все, вам потрібно переконатися, що у вас встановлена ​​правильна версія ASP.Net та що ви встановили розширення IIS.

Для цього перейдіть у відповідну папку версії .net у C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (замінивши зашиті папки на потрібні папки на вашому ПК) та запустіть цю команду

aspnet_regiis.exe -i

Далі після запуску та закінчення, іноді запуску

iisreset

з командного рядка допомагає, іноді не потрібно.

Далі перейдіть до свого менеджера IIS та знайдіть веб-сайт localhost та виберіть додати папку. Перейдіть до папки у вашому проекті, яка містить власне проект ASP.Net, і додайте його.

Нарешті, клацніть правою кнопкою миші на доданій вами папці, і у вас повинна з’явитися опція «Перетворити у додаток» або «Створити віртуальний каталог» чи щось подібне.

!! Переконайтесь, що у віртуальному каталозі назва "MyWebApp" !!

Перезавантажте своє рішення, і воно повинно працювати.

Будьте обережні; це не питання програмування (і насправді не слід розміщувати тут), але я опублікував це керівництво, оскільки це загальна проблема, але поради, які я опублікував, є загальними; команди, які я перераховував, є правильними, але кроки, які вам потрібно зробити в IIS, можуть відрізнятися, це залежить від вашої версії та привілеїв вашого облікового запису.

Удачі!


Я дотримувався вказівок і отримував таку помилку .. Я видалив свою віртуальну директорію через цю помилку. Неможливо додати дублікат запису колекції типу "додати" з унікальним атрибутом ключа "ім'я", встановленим на "Telerik_Web_UI_WebResource_axd"
— dotnet-практик

Що дає цю помилку, IIS або Visual Studio, коли ви запускаєте рішення?
— Russ Clarke

Крім того, перевірте web.config, чи є ваш новий проект asp.net, у ньому є дві або більше посилань на "Telerik.WebResource.axd", на нього потрібна лише одна.
— Russ Clarke

Я перевірив web.config .., коли я видаляю неприйнятну інформацію, тоді я отримую повідомлення про помилку, що видалений запис потрібен.
— практикуючий дотнет

найближчим часом збирається опублікувати окреме запитання щодо нового повідомлення про помилку
— практикуючого дотнету

523

Оскільки прийнята відповідь вимагає IIS Manager, а IIS Express не має IIS Manager або будь-якого інтерфейсу користувача, ось для вас користувачі IIS Express (і повинні працювати і для всіх інших).

Коли ви відкриваєте Visual Studio і отримуєте повідомлення про помилку, клацніть правою кнопкою миші Провідник рішень проекту та виберіть "Редагувати {ProjectName} .csproj"

У файлі проекту змініть такий рядок:
<UseIIS>True</UseIIS>
щоб
<UseIIS>False</UseIIS>
зберегти файл.

Тепер перезавантажте проект.
Зроблено.

Потім ви зможете відкрити свій проект. Якщо в цей момент ви хочете використовувати IIS, просто перейдіть до своїх властивостей проекту, перейдіть на вкладку «Веб» і виберіть варіант для використання IIS. Там є кнопка "Створити віртуальний каталог". Це може сказати вам, що вам потрібно запустити Visual Studio як адміністратор, щоб створити цей каталог, тому зробіть це за потреби.


33
у VS2010 UseIIS знаходиться не у файлі csproj, а у файлі
— .csproj.user

2
У моєму випадку я все ще хочу використовувати IIS, тому я просто змінив URL-адресу, відмінно працював завдяки.
— kjetilh

У мене ця проблема під час оновлення та переміщення. Це працювало для мене, хоча оскільки рішення не завантажувалося, я просто відкрив csproj в текстовому редакторі. Дякую Дугу.
— Киеран

2
Це правильна відповідь. Проект налаштований на використання як IIS, так і IISExpress одночасно.
— Аарон Рід

2
Використовуючи VS2013, я не бачу редагування {ProjectName} .csproj при натисканні правою кнопкою миші на рішення. Я завершив редагування, перейшовши до файлової системи та вручну редагувавши файл .csproj. Це було лише для читання, тому мені довелося трохи потанцювати, але це спрацювало.
— Аль Лелопат

222

Відкрийте папку проекту та видаліть {Project} .csproj.user , а потім перезавантажте проект у Visual Studio.


2
Я був єдиним серед нашої команди, який бачив цю помилку IIS. Команда розробників, з якою я працюю, мала один і той же файл .csproj з управління джерелом, тому інші рішення вище не були моєю проблемою. Виявляється, згаданий вами файл .csproj.user викликав цю помилку в моїй ситуації. Дякую!
— Мій стек переповнюється

3
Це спрацювало для мене після спробу більшості всього іншого
— Девіда

3
Це правильна відповідь. Це вирішує проблему з конфігурацією проекту на вашій машині (особливо важливо при роботі з TFS).
— Маркус

1
Це також рішення, якщо ви встановили спеціальний тег iisurl, але проект все ще починається на локальному хості <IISUrl> MachineName.domain: 12345 / </IISUrl >
— lsp

5
Цей працював на мене. В моєму випадку налаштування <UseIIS> не було.
— Techgration

33

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

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

АБО

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

скріншот csproj


30

для мене мені довелося видалити ці два рядки з файлу .csproj

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Я спробував видалити лише перший, але цього було недостатньо.

РЕДАКТИРУВАННЯ: Як багато користувачів вказали, це може змінити тип вашого проекту чи заплутатися з програмою управління джерелами. Я не можу досліджувати ці проблеми, оскільки це був шкільний проект, якого у мене більше немає. Будьте уважні, намагаючись це зробити. Принаймні зробіть копію того, що ви видалите.


9
Цей працював, і цей слід позначати як відповідь. Я спробував багато рішень, як було запропоновано в SO, але жодне не працювало для мене, окрім цього.
— Bose_geek

3
Після випробування всіх пропозицій вище, це те, що насправді працювало на мене. Дякую, мій чувак!
— -Дикун

2
Це змінює тип проекту, тому більше не є веб-додатком.
— Орам

3
Видалити <ProjectGuid> з файлу .csproj недоцільно. Для завантаження проекту достатньо видалити лише <ProjectTypeGuids>, що також є поганою ідеєю, оскільки він змінює тип проекту, як згадував @Oram. Ця відповідь хороша, якщо ви не хочете вносити свої зміни, просто подивіться на код у VS.
— елшев

1
Це вирішило помилки завантаження провідника рішень, з якими я стикався з підрядником, розробленим рішенням Visual Studio 2010, яке я переходжу до 2013 року. У файлі рішення є 2 проекти; веб-додаток та веб-сервіс. Я не зміг завантажити жодну з них, тому Провідник рішень показував лише дві порожні папки після спроби відкрити файл рішення. Після того, як я прокоментував запропоновані рядки ProjectGuid та ProjectTypeGuids, я міг побачити залежності цих проектів у Провіднику рішень. Для мене це був варіант низького ризику з низьким ризиком, оскільки я міг легко скасувати ці зміни. Дякую!
— JohnH

26

Відредагуйте .csproj або vbproj файл. Знайдіть і замініть ці записи

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>

1
Мені також довелося змінити DevelopmentServerPort на значення, відмінне від 80.
— JoshNaro

1
Якщо ви не можете знайти налаштування у файлі csproj. Відкрийте файл .csproj.user і зробіть це там.
— devzero

10

У моєму випадку ця проблема була викликана порушеними прив'язками IIS. Зокрема, мою прив'язку "http" було видалено. Відтворення його виправило проблему.


У мене виникла дуже схожа проблема. Моя прив'язка HTTP, здавалося, перейменувала себе одного дня -_- Параметр файлу проекту <IISUrl>не змінився (дякую SVN за підтвердження моєї пам’яті та моєї розумності), але якимось чином прив’язка iis мала. Виправлено це, і проектоване завантажено відразу.
— Патрік М

Крім того, не забудьте перевірити, чи ви змінили сні / ім'я цільового сайту з якоїсь причини. Це спричинило помилку в моєму випадку.
— juarola

5

Спробуйте відкрити Visual Studio з правами адміністратора. У моєму випадку він дав доступ до сайту IIS і усунув цю помилку. Тоді мені вдалося переключити проект на використання IIS Express, який, схоже, не потребує прав адміністратора.


5

Це спрацювало для мене: -
Зробіть так, щоб усі ваші веб-сайти IIS вказували лише на localhost (Усі не призначені)

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


5

Якщо ви підключені через TFS, відкрийте файл project.csproj.user і перевірте

<UseIISExpress>false</UseIISExpress>

і змінити його на істинне.

<UseIISExpress>true</UseIISExpress>

Хоча я відчуваю, що це скоріше вирішення проблеми, ніж власне рішення, дало їй великі пальці, оскільки це вирішило мою негайну проблему.
— Нандун

Працював чудово :)
— Хаммад Садід

4

Ви можете завантажити проект, не встановлюючи значення атрибута UseIIS значення true. Просто виконайте наступні кроки:

У файлі mywebproject.csproj--

Видаліть тег <IISUrl> http: // localhost / MyWebApp / </ IISUrl> та збережіть файл. Додаток автоматично призначить йому порт за замовчуванням.


4

Ви не повірите, startвізуальна студія як адміністратор

як очевидно з повідомлення

Не вдалося знайти веб-сервер " http: // localhost / MyWebApp ".

не вдалося знайти, бо може it has no privileges to see it

тому просто restartвізуальна студія як адміністратор


3

У моєму випадку я хотів перейти з http на https, тому я видалив http з IIS. У моєму файлі .csproj.user було встановлено, що я все ще маю:

<IISUrl>http://localhost/</IISUrl>

Тому я змінив його на:

<IISUrl>https://localhost/</IISUrl>

2

У моєму випадку мені вдалося відкрити рішення в автономному режимі, просто запустивши команду:

iisreset

2

Якщо ви користуєтеся програмою Win8 там, якщо ви дотримуєтесь кроків у прийнятій відповіді, консоль висилає вам повідомлення, в якому йдеться: "Ви не будете використовувати командний рядок для виконання цієї команди" (перефразовуючи). Натомість перейдіть до програм і функцій через панель керування (або Windows + R> appwiz.cpl), натисніть «Увімкнути або вимкнути функції Windows» та переконайтесь, що у вас встановлено наступне:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Це також перевірить купу інших варіантів. Щойно я встановив ці функції та запустив VS2012 із підвищеними дозволами, я зміг успішно запустити свій додаток.


2

Це трапляється зі мною, коли я намагався відкрити проект із файлу .csproj, але я перебираю його, відкриваючи проект від VS:

Файл> Відкрити> Веб-сайт

і виберіть каталог, який включає мій проект.


1

У мене була і ця помилка. Я подумав, що все налаштовано правильно, але я виявив, що одна річ відсутня: ім'я хоста, яке я використовував для свого проекту, не було (поки) вирішено.

Оскільки моя програма визначає ім'я поточного клієнта від імені хоста, я використовував ім'я хоста, як clientname.mysuperapp.localдля розробки. Коли я додав ім'я хоста розробки до свого hostsфайлу, проект знову завантажувався. Очевидно, мені довелося це зробити все-таки, але я не думав, що VS перевіряє ім'я хоста перед завантаженням проекту.


1

Перевірте, чи встановлено IIS Express. Якщо IIS Express відсутній, Visual Studio може відмовитися від налаштування <UseIISExpress>false</UseIISExpress>і все-таки шукати експрес.


1

у моєму випадку переконайтеся, що у вас є веб-сайт "За замовчуванням"


1

У моєму випадку "Веб-сайт за замовчуванням" в IIS не мав прив'язки для localhost на порту 80. У вас має бути прив'язка будь-якого значення у файлі .csproj.


1

Я вирішив це, просто перевстановивши IIS Express після завантаження з нижньої посилання:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264


1
Це не дає відповіді на запитання. Коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію ; натомість надайте відповіді, які не потребують уточнення від запитувача . - З огляду
— FluffyKitten

@FluffyKitten У мене була така ж помилка, що і в ОП, я спробував усі інші відповіді, і нічого не вийшло, ніж перевстановити IIS Express. Тому я вважаю, що це моя відповідь на питання ОП. Перевстановити IIS.
— Метью

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

Якщо це варіант останньої інстанції після того, як більше нічого не працює - і за словами Ajay2707, існує жоден потенціал, щоб жоден з інших відповідей не працював на погану душу - тоді я думаю, що ця відповідь може бути корисною. Як можна визначити відповідь низькою якістю, коли це може бути єдиним, що працює для деяких людей? Я підтримую вас Ajay2707. Дякуємо, що знайшли час зробити свій внесок у співтовариство.
— нардноб

Inb4 ця розмова переміщується / видаляється як низька якість. viva ла опір !!
— нардноб

0

У моєму випадку URL, на який посилався у файлі csproj, був неправильним.

Це потрібно було встановити за допомогою префікса www.

Я вніс зміни, зберег файл і проект завантажився чудово.


0

Я зіткнувся з цією проблемою , коли <ProjectTypeGuids>елемент в файлі .csproj міститься блок тестового проекту GUID: {3AC096D0-A1C2-E12C-1390-A8335801FDAB}.

Його видалення без проблем навантажило проект.


0

Для користувачів DNN моєю проблемою було те, що мені потрібна прив'язка для dnndev.me на порту 80. У мене є декілька встановлень, які працюють на різних портах, і VS вимагає, щоб цей конкретний URL існував на порту 80 (не 86, як у мене).

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