Проект веб-додатків […] налаштований на використання 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.