Не удалось создать виртуальный каталог из-за ошибки


89

Я не могу решить эту проблему

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

Я предлагаю изменить c:\Windows\System32\drivers\etc\hostsфайл и добавить после

# localhost name resolution is handled within DNS itself.

следующая строка:

127.0.0.1       mysite.dev

но это не помогает. Какие-либо предложения?

Ошибка возникает при попытке открыть проект веб-сайта в Microsoft Visual Studio 2012.


Проверьте это: stonycreektechnologies.com/2011/03/15/…
fankt

Это вторая или третья ссылка на Google, которую я получил при поиске решения в Интернете. Это не то, что мне нужно.
Дмитрий

Ответы:


167

Чаще всего, по крайней мере в моем случае, это происходит, когда *.csproj.userфайл находится в каталоге проекта и <UseIISExpress>true</UseIISExpress>в нем есть.

В качестве альтернативы, как упоминал Захари Катлер, вы также можете просто: закрыть Visual Studio, удалить *.csproj.userфайл и снова открыть Visual Studio . Это заставит VS восстановить файл.


1
это не работает для меня, после обновления vs2017 15.7.1 у меня возникла эта проблема.
Марсен Лин

Спасибо огромное!
Рубен Таннер

2
У меня это не сработало. Я удалил .vsпапку. удален *.csproj.userи по-прежнему выдает ту же ошибку.
Zapnologica

1
это тоже сработало для меня, я просто удалил файл [myproj] .csproj.user, и он загрузился - это было в VS2019 - работало в режиме администратора
Марк

33

Я уже нашел решение. Мне просто нужно было отредактировать C:\Users\Administrator\Documents\IISExpress\config\applicationhost.configфайл, добавив свой сайт в <sites>узел.


В случае, если это не ответ для вас, и если вы окажетесь в моей ситуации, я удалил каталог .vs, чтобы очистить кеш, и не заметил, что Visual Studio изменила мою конфигурацию сборки по умолчанию на автоматически сгенерированную, которая была настроен на использование IISExpress. Так что, если у вас был проект, который работал нормально, а затем перестал загружаться, я бы посоветовал, прежде чем делать что-либо еще, проверить конфигурацию сборки (что я, конечно, не смог сделать)
saminpa 02

К сожалению, хотя мой предыдущий «полезный» комментарий был точным, он не был основной причиной загадочного сообщения об ошибке. Это было бы потому, что автоматически воссозданная папка .vs унаследовала шифрование NTFS. Вернуться к нормальному состоянию без необходимости редактировать файл проекта после расшифровки этой папки.
saminpa 02

Работает даже через 6 лет. У меня проблема с последней версией vs2017. Но решил это, используя приведенную выше информацию.
Awais

Когда использовать локальный, а не applicaionhost.configтот, который находится в папке решения?
Zapnologica

19

Вы можете выбрать локальную установку IIS и отредактировать пару тегов в файле .csproj. Откройте файл csproj и перейдите в раздел, <VisualStudio>затем найдите тег, <UseIIS>True</UseIIS> который должен быть установлен как true, затем перейдите к тегу: <IISUrl>и установите URL-адрес, на котором приложение будет размещено для тестирования:

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

Так и есть. Теперь вы можете загрузить свой проект в обычном режиме.


Забавно, это ответ на мой случай.
coffekid

3
С примечанием: **звездочек в файле быть не должно. Конечно.
ErikE

16

Проблема будет в том, что настройка вашего проекта будет выполняться в локальном IIS, а указанный URL-адрес не существует.

Есть способы решить эту проблему.

Вариант 1 : (используйте IIS Express)

1.) Откройте файл .csproj веб-проекта как XAML или в блокноте.

2.) Найдите эти свойства и установите в соответствии с вашими предпочтениями.

UseIIS = false

UseIISExpress = true

вот и все.

Вариант 2 : (использовать локальный IIS)

Выполните шаги варианта 1, но измените следующие свойства.

UseIIS = true

IISUrl = https: // локальный хост

UseIISExpress = false


Вариант 1 не работает
Метин Аталай

Вариант 2 сработал для меня, просто нужно было установить UseIIS = true
Джошло

Вариант 2
сработал

9

Проблема может быть устранена путем удаления папки с именем .vs в каталоге проекта.

Это решает проблему, потому что при открытии проекта после удаления файла .vs он создает ту же папку с конфигурацией подпапки и папку с именем проекта.

В папке config applicationhost содержатся необходимые настройки, необходимые для успешного запуска проекта.


6

Я просто зашел в каталог, названный в ошибке, переименовал applicationhost.config и перезапустил, а VS создал новый файл и работал нормально.


2
  • Пробовал несколько подходов , упомянутых в ответах, но то , что , наконец , работал для меня был обменивая <IISUrl>из .csprojс <CustomServerUrl>.

Редактировать :

  • Вышеупомянутое не устранило для меня основную причину проблемы. Однако, если вы недавно обновляли Windows, возможно, это могло быть причиной проблемы. Попробуйте выполнить netsh http add iplisten 0.0.0.0и посмотрите, решит ли это проблему.

Надеюсь, это поможет кому-то, все еще ищущему выход.


1
Из всех вещей (и я имею в виду ВСЕ) именно этот ( <CustomServerUrl>) помог мне. Спасибо!
Эш

1

Я не знаю, почему мой applicationhost.configфайл полностью отсутствовал в моей C:\Users\Administrator\Documents\IISExpress\config\папке.

Копирование / вставка C:\inetpub\history\applicationhost.configв эту папку, похоже, решила проблему для меня.

Уловил идею отсюда .


В моем случае файл был поврежден. поэтому я удалил его и заменил файлом applicationhost.config, найденным при системном поиске. У меня нет прав администратора, поэтому я не могу получить доступ к inetpub \ history. Я думаю, что Visual Studio всегда ожидает этот файл конфигурации, но после этого, хотя я неоднократно удалял файл applicationhost.config из местоположения IISExpress \ config, VS продолжал его создавать. Похоже, что иногда настройки могут быть повреждены, но как только они будут встроены в правильные настройки, VS позаботится обо всех настройках самостоятельно.
кумар чандракету

1
  1. Включите функции Windows «Информационные службы Интернета» на панели управления.
  2. Откройте файл ".csproj" и найдите
  3. Измените эту строку в соответствии с вашими требованиями. http: // локальный: 777 /
  4. Откройте проект / решение сейчас
  5. Если не удалось загрузить снова, просто щелкните решение правой кнопкой мыши и выберите «Перезагрузить проект».

1

Я знаю, что это, вероятно, редкое явление, но решил, что поставлю это здесь:

Мой csprojфайл был настроен на «только чтение» (не спрашивайте меня, как мне это удалось), но после того, как я отключил доступ «только для чтения», все было в порядке. (VS2017)


0

Я столкнулся с той же проблемой из-за изменения пароля к сети. Я изменил свой пароль для входа в NetExtendor, но мне нужно войти в свой ноутбук со старым паролем.

Попробуйте выполнить следующие действия, чтобы решить эту проблему:

войдите в компьютер с любым паролем, который работает, войдите в vpn с любым паролем, который работает ctl-alt-del, чтобы заблокировать компьютер, затем используйте новый пароль, чтобы разблокировать его

У меня сработало :-)

Благодарность!


0

Не та же самая ошибка, но я пришел к этому ответу, так как первая половина ошибки совпала. Ваш файл applicationhost.config может быть просто доступен только для чтения. Сняв это, я решил ошибку. Эта ошибка вызывает конкретный файл, поэтому вы сможете легко его найти.


0

Моя проблема была в Защитнике Windows 10. Раньше я давал IIS разрешение, но теперь он его игнорирует. Мы рассмотрим это позже, но пока я отключил контролируемый доступ к папкам, и это сработало.


0

Я хотел открыть существующий проект Visual Studio 2017 в VS 2019 и столкнулся с той же проблемой. Я считаю, что это проблема, связанная с версией. Решение: создайте новый проект в новой версии VS и скопируйте коды из старой версии VS.


Добро пожаловать в SO! В вопросе нет упоминания о каких-либо изменениях в версии VS. Когда вы публикуете ответ, убедитесь, что отвечаете на вопрос. Если нет, просто создайте вопрос с этой проблемой и ответьте сами, чтобы это помогло Сообществу.
Дэвид Гарсиа Бодего

0

Попробуйте расшифровать файл applicationhost.config. Это сработало для меня.


-1

Итак, вот шаги, чтобы исправить это:

  1. Перейдите туда, где находится ваш файл .csproj. Обычно это каталог под решением (.sln)
  2. Щелкните правой кнопкой мыши и откройте в текстовом редакторе (блокноте)
  3. Найдите тег IISUrl и замените его содержимое на http: // localhost: (YourPortNumber)
  4. Сохраните и перезагрузите свой проект!
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.