Проект веб-приложения [...] настроен на использование IIS. Веб-сервер [...] не найден.

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

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

28 ответов

Решение

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

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

Для этого перейдите в папку с соответствующей версией.net в папке c:\(windows)\microsoft.net\(dotnetver)\ (подставляя в скобки папки для правильных папок на вашем ПК) и выполните эту команду

aspnet_regiis.exe -i

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

iisreset

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

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

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

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

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

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

Удачи!

Поскольку для принятого ответа требуется 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 от имени администратора, чтобы создать этот каталог, так что сделайте это при необходимости.

Откройте папку проекта и удалите {Project}.csproj.user, затем перезагрузите проект в Visual Studio.

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

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

ИЛИ ЖЕ

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

Для меня, я должен был удалить эти две строки из файла.csproj

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

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

Отредактируйте файл.csproj или vbproj. Найти и заменить эти записи

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

Причина : IISURL внутри неправильно отражается в настройках проекта, и virtual directory не был создан.

Решение : изменить Project URL исправить и создать Virtual Directory сделать недостающее PORT имеется в наличии.


Следуйте инструкциям ниже :

Шаг 1. Щелкните правой кнопкой мыши файл проекта, чтобы Edit the project.csproj файл.

Шаг 2: поиск IIS и изменить из <UseIIS>True</UseIIS> к <UseIIS>False</UseIIS>

Шаг 3. Щелкните правой кнопкой мыши по проекту, чтобы Reload the Project. После успешной перезагрузки щелкните правой кнопкой мыши Project и выберите Properties.

Шаг 4. Найдите параметр URL-адреса проекта в разделе « Свойства» => « Интернет».

Шаг 5 : Изменение URL проекта по URL IIS указано как на сообщении об ошибке и на <IISURL>http://localhost:8086 </IISURL> из project.csprojфайл. Затем нажмите « Создать виртуальный каталог» . Сохранить все

Шаг 6. Повторите шаг 2, чтобы он не повлиял на удаленную базу кода и параметры развертывания сервера.

В моем случае эта проблема была вызвана нарушением привязок IIS. В частности, моя привязка http была удалена. Воссоздание это решило проблему.

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

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

Если вы подключены через TFS, откройте файл project.csproj.user и проверьте наличие

<UseIISExpress>false</UseIISExpress>

и изменить его на истину.

<UseIISExpress>true</UseIISExpress>

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

как видно из сообщения

Веб-сервер ' http://localhost/MyWebApp' не найден.

не может быть найден, потому что может it has no privileges to see it

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

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

В файле mywebproject.csproj--

Удалите тег http://localhost/MyWebApp/ и сохраните файл. Приложение автоматически назначит ему порт по умолчанию.

В моем случае я хотел переключиться с http на https, поэтому я удалил http из IIS. В моем файле.csproj.user обнаружил, что у меня еще было:

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

Поэтому я изменил это на:

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

В моем случае я смог открыть решение в автономном режиме, просто запустив команду:

iisreset

Для вас, пользователей Win8, если вы выполните действия, описанные в принятом ответе, консоль выдаст вам сообщение "Не используйте командную строку для выполнения этой команды" (перефразируя). Вместо этого откройте "Программы и компоненты" через панель управления (или Windows + R > appwiz.cpl), нажмите "Включить или отключить функции Windows" и убедитесь, что установлено следующее:

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

Это также проверит кучу других опций. Как только я установил эти функции и запустил VS2012 с повышенными разрешениями, я смог успешно запустить свое приложение.

Это происходит со мной, когда я пытался открыть проект из файла.csproj, но я преодолел его, открыв проект из VS:

Файл> Открыть> Веб-сайт

и выберите каталог, в который входит мой проект.

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

Так как мое приложение определяет имя текущего клиента по имени хоста, я использовал имя хоста как clientname.mysuperapp.local для развития. Когда я добавил имя хоста разработки в свой hosts файл, проект был загружен снова. Очевидно, мне все равно пришлось это сделать, но я не думал, что VS проверяет имя хоста перед загрузкой проекта.

Оказывается, мой IIS работал на localhost:8181. Пришлось настроить файл {Project}.csproj.

          <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>7386</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>**http://localhost:8181/ProjectName**</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile><EnableWcfTestClientForSVCDefaultValue>True</EnableWcfTestClientForSVCDefaultValue>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>

Проверьте, установлен ли IIS Express. Если IIS Express отсутствует, Visual Studio может отменить параметр <UseIISExpress>false</UseIISExpress> и все равно поищи экспресс.

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

В моем случае убедитесь, что у вас есть веб-сайт по умолчанию

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

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

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

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

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

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

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

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

Следуйте этому завершенному решению шаг за шагом. это работает для меня в 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. Нажмите ОК
  6. Открыть визуальную студию с разрешением администратора

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

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

Это может помочь некоторым людям в 2020 году. Основная проблема заключается в том, что настройки IIS в файле CSPROJ не совпадают с конфигурацией машины. Например, если у вас был проект веб-приложения, указывающий на localhost:12345, и виртуальный каталог не настроен на машине с этим портом, вы получите эту ошибку.

При использовании VS2019 у меня была такая же проблема, и настройки IIS в файле CSProj игнорировались. Причина этого - новое свойство в файле CSProj под названием "SaveServerSettingsInUserFile":

       <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
      <UserProperties UseAjaxifiedTemplates="True" UseJQuerySupport="True" />
    </VisualStudio>
  </ProjectExtensions>

Если установлено значение TRUE, свойства IIS/ веб-сервера находятся в

.CSPROJ. Пользовательский файл с тем же названием проекта.

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

Вы можете контролировать, где хранятся настройки, с помощью графического интерфейса Visual Studio в свойствах проекта в разделе "Интернет", "Применить настройки сервера ко всем пользователям".

Когда он включен, настройки IIS сохраняются в CSPROJ, когда он выключен, они сохраняются в CSPROJ.

Другие вопросы по тегам