Проект веб-приложения […] настроен на использование 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
  • IIS версия 7.5

Ответы:


87

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

Прежде всего необходимо убедиться, что у вас установлена ​​правильная версия ASP.Net и установлены расширения IIS.

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

aspnet_regiis.exe -i

Следующий раз, когда он запущен и закончен, иногда работает

iisreset

из командной строки помогает, иногда вам не нужно.

Затем перейдите в диспетчер IIS, найдите свой локальный веб-сайт и выберите «Добавить папку». Перейдите к папке в вашем проекте, которая содержит реальный проект ASP.Net и добавьте его.

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

Убедитесь, что виртуальный каталог имеет имя «MyWebApp» !!

Перезагрузите ваше решение, и оно должно работать.

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

Удачи!


Я следовал инструкциям и получил следующую ошибку. Я удалил свой виртуальный каталог из-за этой ошибки для начала. Невозможно добавить повторяющуюся запись коллекции типа «add» с уникальным ключевым атрибутом «name», установленным в «Telerik_Web_UI_WebResource_axd»
dotnet-Practitioner

Что дает эта ошибка, IIS или Visual Studio, когда вы запускаете решение?
Расс Кларк

Также проверьте web.config для вашего нового проекта asp.net, он имеет две или более ссылки на «Telerik.WebResource.axd», он нужен только один.
Расс Кларк

Я проверил web.config .. когда я удаляю ошибочную запись, я получаю сообщение об ошибке, что удаленная запись необходима.
дотнет-практикующий

собирается в ближайшее время опубликовать отдельный вопрос для нового сообщения об ошибке
dotnet-Practitioner

523

Поскольку для принятого ответа требуется IIS Manager, а IIS Express не имеет IIS Manager или какого-либо пользовательского интерфейса, вот решение для пользователей IIS Express (и должно работать для всех остальных):

Когда вы откроете Visual Studio и получите сообщение об ошибке, щелкните правой кнопкой мыши Project Explorer Explorer и выберите «Edit {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, я не вижу Edit {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>.
Техническая интеграция

33

Это решение сработало для меня: щелкните правой кнопкой мыши на Project, выберите edit и найдите следующий код, как показано ниже на рисунке.

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 проекта; веб-приложение и веб-сервис. Я не смог загрузить ни одну из них, поэтому Solution Explorer показывал только две пустые папки после того, как я попытался открыть файл решения. Как только я закомментировал предложенные строки 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 изменилась. Исправлено и проекция загружена сразу.
Патрик М

Кроме того, не забудьте проверить, изменили ли вы по какой-либо причине имя целевого сайта sni / host. Это вызвало ошибку в моем случае.
Juarola

5

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


5

Это сработало для меня: -
Сделайте так, чтобы все ваши сайты IIS указывали только на localhost (All Unassigned)

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


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

Для вас, пользователей 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

В моем случае «Веб-сайт по умолчанию» в IIS не имел привязки для localhost на порту 80. У вас должна быть привязка для любого значения в файле .csproj.


1

Я исправил это, просто переустановив IIS Express после загрузки по ссылке ниже:

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


1
Это не дает ответа на вопрос. Как только у вас будет достаточно репутации, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют разъяснений от автора . - Из обзора
FluffyKitten

@FluffyKitten У меня была та же ошибка, что и у ОП, я попробовал все остальные ответы и ничего не получилось, кроме переустановки IIS Express. Поэтому я считаю, что это мой ответ на вопрос ОП. Переустановите IIS.
Матфея

Ваш ответ был помечен как некачественный и проходит процесс проверки (обратите внимание на «Из обзора» в конце комментария). Хотя это может работать, переустановка программного обеспечения является последним средством, когда ничего не работает и не является конкретным решением проблемы этого OP.
FluffyKitten

Если это вариант последней инстанции после того, как больше ничего не работает - и согласно Ajay2707 существует вероятность того, что ни один из других ответов не сработает для какой-то бедной души - тогда я думаю, что этот ответ может быть полезен. Как вы можете обозначить ответ как низкокачественный, если он может быть единственным, что подходит для некоторых людей? Я поддерживаю вас Ajay2707. Спасибо, что нашли время внести свой вклад в сообщество.
nardnob

Inb4 этот разговор перемещен / удален как имеющий низкое качество. вива ла сопротивление !!
nardnob

0

В моем случае URL, указанный в файле csproj, был неверным.

Это должно быть с префиксом www.

Я внес изменения, сохранил файл и проект загрузился нормально.


0

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

Удаление его сделало загрузку проекта без проблем.


0

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


0

Следуйте этому законченному решению шаг за шагом. это работает для меня в VS 2017.

  1. Откройте командную строку в режиме администратора

  2. Откройте проводник и перейдите в папку .NET Framework

      Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319

    v4.0.30319 это моя папка .NET. Вы хотите выбрать соответствующую папку.

  3. в CMD - Перейти к пути к папке .NET

    cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
  4. Выполните команду ниже в CMD

    aspnet_regiis.exe -i

    Наконец, вы можете увидеть это сообщение - Закончена установка ASP.NET (4.0.30319.0)

    iisreset

    Вы можете увидеть это сообщение, наконец - Интернет-услуги успешно перезапущены

  5. Откройте IIS на вашем компьютере (если не настроен. Следуйте этому )

    1. Зайдите на сайт и щелкните правой кнопкой мыши

    2. Добавить сайт

    3. Заполнить - Имя сайта и выбрать физический путь

    4. Затем введите номер порта (вы можете найти номер порта в файле .csproj и номер порта должен быть равен (IISUrl)

    EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724

    Примечание : вы не можете создать номер порта 80 . потому что он использовал страницу IIS по умолчанию

    1. Нажмите Ok
  6. Открыть визуальную студию с разрешения администратора

  7. Затем щелкните правой кнопкой мыши и перезагрузите ваш проект

Ваша проблема может быть решена.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.