Ошибка - невозможно получить доступ к метабазе IIS

После установки Visual Studio 2012 и открытия моего решения я получаю ряд ошибок в этой форме:

Проект веб-приложения Foo настроен на использование IIS.
Невозможно получить доступ к метабазе IIS. У вас недостаточно прав для доступа к веб-сайтам IIS на вашем компьютере.

Я получаю это для каждого из наших веб-приложений. Вещи, которые я пробовал:

  1. Запуск Visual Studio от имени администратора
  2. Запуск aspnet_regiis.exe -ga MyUserName
  3. Запуск aspnet_regiis.exe -i

Похоже, что это общие решения для этой проблемы, но я не имел никакого успеха с ними. Есть ли что-нибудь еще, что я могу попробовать сделать?

36 ответов

Решение

Спасибо всем, кто ответил. Так как это было закрыто в течение долгого времени, я не мог предоставить много отзывов, но в конце концов я решил свою проблему. Я попробовал многие из этих других решений, и они не решили мою проблему, но я уверен, что они помогают, когда основная причина другая.

Мое решение

Я решил эту проблему, отключив функции IIS и.Net Framework в Windows 7, а затем снова включив их. Кажется, что эта переустановка - то, что исправило мою проблему. Я до сих пор не знаю, что вызвало проблему, но по крайней мере еще у одного разработчика в моей команде была такая же проблема.

В Windows 8 Pro:

%systemroot%\inetsrv\config

На Windows 7 и 8.1 и 10

%systemroot%\System32\inetsrv\config 

(Куда %systemroot% обычно C:\Windows)

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

"У вас нет доступа к этой папке - нажмите" Продолжить ", чтобы навсегда получить доступ к этой папке"

Нажмите "Продолжить" для этой папки и с папкой "Экспорт" внизу. Я изменил ярлык обратно на "Запуск от имени" (член домена и локальные администраторы) и смог открыть и развернуть решение.

Я думаю, что вы не используете Visual Studio с правами администратора. Посмотри что:

http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx

Цитировать

Решение этой проблемы простое: запустите Visual Studio с помощью "Запуск от имени администратора". Вы можете сделать это, щелкнув правой кнопкой мыши по ярлыку и выбрав "Запуск от имени администратора".

Я думаю, что мы столкнулись с подобной проблемой на работе. Для нас решение состояло в том, чтобы перейти в Панель управления -> Программы и компоненты -> Включить или отключить функции Windows... внутри этого, мы должны были выбрать Информационные службы Интернета -> Инструменты веб-управления -> Совместимость управления IIS 6 -> Совместимость конфигурации IIS Metabase и IIS 6. Диалоговое окно

Попробуйте и дайте мне знать, если это поможет!

Примечание. Мы работаем с IIS 7.5 в Windows 7, используя Visual Studio 2005 и 2010, и работаем с веб-сервисами супер-старой школы (.asmx)...

Я решил эту проблему, предоставив разрешения удостоверений IIS AppPool для %systemroot%\inetsrv\config

Если вы работаете над проектом, который не требует использования IIS, то для обхода решения, связанного с этой ошибкой, нужно просто щелкнуть правой кнопкой мыши на незагруженном проекте и нажать "Изменить", выполнить поиск:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

и установите USEIIS в false

<UseIIS>False</UseIIS>

перезагрузите проект, щелкнув правой кнопкой мыши на нем после сохранения изменений.

У меня было два отдельных типа проблем, приводящих к этой ошибке, и я думал, что поделюсь...

1. The directory was on an network share and due to UAC restrictions, was 
   unable to be accessed -- even when running as an admin.
2. The directory was on a drive that didn't exist...

Оба они происходят из-за неудачного (imo) выбора MS поместить вещи в каталог Documents или My Document, в сочетании с очень паршивыми сообщениями об ошибках. В обоих вышеупомянутых случаях фундаментальная проблема заключалась в том, что файл IISExpress Config помещается в "Мои документы", и он либо не существует, либо недоступен.

Переход к папке: %systemroot%\System32\inetsrv\config представляет диалог безопасности. Нажмите продолжить, и это может решить проблему. Это работало на двух отдельных машинах Win 10/VS 2017/IIS.

На Windows 81, из командной строки администратора, используйте:

icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)

Затем вернитесь в VS, щелкните правой кнопкой мыши на неудачном проекте и выберите "Обновить".

Кредит: Обзор разрешений IIS7 - ApplicationPoolIdentity

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

Основная проблема заключалась в том, что файлы конфигурации IIS, расположенные по адресу%USERPROFILE%\Documents, недоступны. Как только я изменил расположение папки "Мои документы" (я изменил значение reg), он снова начал работать.

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

Я столкнулся с этим сегодня и исправил проблему, удалив IISUrl из файла проекта:

  1. Щелкните правой кнопкой мыши проект
  2. Нажмите Редактировать
  3. Удалить следующую строку:

     <IISUrl>http://localhost:xxxxx </IISUrl>
    
  4. Перезагрузить проект

  5. Теперь добавьте новый виртуальный каталог IIS, щелкнув правой кнопкой мыши Project > Properties > Web и выбрав Use Local IIS Web Server (снимите флажок Use IIS Express) и нажав кнопку Create Virtual Directory.

Вы можете столкнуться с этой проблемой и иметь ту же проблему, что и я. Я "решил" это раньше, а затем отключил питание, и компьютер вышел из строя, не уверенный, почему параметр реестра был отменен, но это ИСТОЧНИК моей проблемы.

  1. Я пытался все работает в качестве администратора
  2. Все IIS / IIS Express переустанавливается.
  3. Различные "хаки"

Дошло до того, что пришлось снова исправлять реестр.

  1. Не может как администратор даже открыть regedit (необходим доступ к реестру, поскольку проблема не в шаблоне администратора gpedit.msc)

  2. UnHookExec.inf на рабочем столе

Просто сохраните UnHookExec.inf и установите его, щелкнув правой кнопкой мыши и выбрав "Установить". При установке файла не будет отображаться всплывающее окно или окно с уведомлением. http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Папки пользовательских оболочек \ Персональные ссылки на несуществующий файловый ресурс. Изменение этого в локальном пути решило эту проблему для меня. - Паси Саволайнен 14 июля '14 в 8:41

(изменено с \\cs2data\home\stickelt\my documents в c:\dev)

Теперь ВСЕ хорошо, и Visual Studio открыла решение с 15 проектами и подключается к IIS и не жалуется на невозможность доступа к метаданным iis.

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

У меня просто была эта проблема сегодня, и я обнаружил, что я не открыл VS как "Запуск от имени администратора". После этого я смог опубликовать Сервис.

Если у вас есть права администратора, щелкните правой кнопкой мыши значок Visual Studio> свойства, а затем нажмите "Запуск от имени администратора". Вы можете больше управлять администрацией visaul как администратором. Таким образом, формально и так просто.

Изменение этого ключа сработало для меня:

HKEY_CURRENT_USER \ Программное обеспечение \Microsoft\Windows\CurrentVersion\Explorer\ Папки оболочки пользователя \ Личные

Местоположение не существовало.

В дополнение к ответу @nologo мне также пришлось использовать IIS. Так что я изменил

<UseIIS>True</UseIIS>

сначала "Ложь".

  • Открыл решение и убедился, что проект может быть загружен.
  • Близкое решение и тот экземпляр Visual Studio
  • Измените значение на "True" еще раз
  • Откройте решение. На этот раз я не получил никакой ошибки / предупреждения. Я также мог без проблем работать с Ctrl+F5 или F5, пока мой проект был сопоставлен с веб-сайтом IIS.

Перейдите в корневой каталог вашего проекта и найдите следующий файл:

YourProjectName.csproj.user - внутри него убедитесь, что UseIISExpress имеет значение false:

<UseIISExpress>false</UseIISExpress>


Если это не помогает, попробуйте следующее и попробуйте снова:

YourProjectName.csproj - внутри основного файла проекта убедитесь, что для UseIIS и UseIISExpress установлено значение false:

<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>


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

Примечание. Убедитесь, что вы используете VS как администратор, как указано в других ответах.

Это похоже на один из тех ошибок типа "Все ошибки приводят к этому сообщению".

Моим было то, что App Pool был просто выключен. Я снова включил, и все работало нормально.

Еще одна вещь, которую вы можете попробовать:

  • Проверьте, есть ли у вас ожидающие обновления Windows.
  • Если вы это сделаете, пожалуйста, перезагрузите компьютер, прежде чем пытаться что-либо еще.

Я, как правило, никогда не выключал свою машину, поэтому у меня их было много в ожидании перезагрузки. И это исправило это.

Я перепробовал все выше. Кредит относится ко всем ответам выше. Перепробовав все предложения самостоятельно, я просто собрал эту комбинацию предложений в порядке, который имел для меня смысл. Обратите внимание, что моя папка "Документы" находится на общем диске. Материал subst/IISExpress не применим, если вы не в одной лодке.

  • Настройте VS для запуска от имени администратора
  • Удалить IIS через Установка и удаление программ, Функции Windows
  • перезагружать
  • Запустите WinRAR или что-то похожее на администратора и архив C:\windows\system32\inetsrv\
  • Запустите cmd от имени администратора и rmdir /s c:\windows\system32\inetsrv\ полностью удалить все следы последней установки. Оставьте повышенный запрос cmd открытым для дальнейшего использования.
  • Переустановите IIS с совместимостью метабазы ​​IIS 6 (сомневаюсь, что это было необходимо)
  • Оставьте Default AppPool и Default Website как есть (ранее я удалил оба)
  • Ран C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732
  • Ран C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Кроме того, поскольку папка "Мои документы" находится на общем диске, у меня были проблемы с IIS Express. Я не использую / не люблю IIS Express, но Visual Studio пожаловалась на это.

  • Из повышенного командной строки cmd побежал subst U: c:\Temp, созданный C:\Temp\Documents\ и скопировал папку IISExpress с моего диска U.
  • созданный CustomUserHome ключ в HKCU\Software\Microsoft\IISExpress с C:\Temp\Documents\IISExpress
  • Это позволило мне заставить Visual Studio открывать мои веб-проекты и редактировать свойства. Я настроил проекты для сохранения настроек веб-сервера в пользовательском файле и настроил его для использования пользовательского URL (не уверен, если это было необходимо)
  • Я могу / не могу запускать subst Команда каждый раз, когда я перезагружаюсь. Не волнует

И после трехкратного добавления полотенца и примерно шести часов я могу открывать веб-проекты в Visual Studio (обновление 2, 2015 г.).

У меня тоже была похожая проблема. Мое решение - это расширение ответа "Запуск от имени администратора", которое, я надеюсь, кому-то может пригодиться.

Я работал под управлением VS2012 и почти каждый раз, когда мне приходилось делать щелчок правой кнопкой мыши, запуск от имени администратора. Я устал от этого, поэтому вместо этого я вошел в его свойства на ярлыке, нажал кнопку "Дополнительно", а затем выбрал "Запуск от имени администратора". Теперь VS2012 всегда запускается от имени администратора всякий раз, когда я открываю его из этого ярлыка.

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

Как только я сначала открыл VS2012, как обычно, затем с помощью File/Open/Project, он снова работал без проблем. (потому что я работал в качестве администратора). Но я не был администратором, когда открыл решение с помощью файлового менеджера Windows.

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

Надеюсь, это было полезно.

Я сделал ремонт Visual Studio 2015, чтобы решить эту проблему. Ремонт занял много времени, но он решил проблему, в то время как многое из вышеперечисленного не помогло. Я бегу Win 7 предприятия.

  1. Создать ярлык для "devenv.exe"
  2. выберите опцию "Запуск от имени администратора" для ярлыка
  3. нажмите на ярлык и снова откройте ваш проект

Откройте командную строку Visual Studio и введите команду ниже и запустите

aspnet_regiis -ga machinename\ASPNET

После выполнения вышеуказанной команды сбросьте IIS и протестируйте приложение, которое решит вашу проблему.

Если приведенная выше команда не решает вашу проблему, попробуйте запустить следующую команду в visual studio command prompt:-

aspnet_regiis -i

В качестве альтернативы мы также можем запустить вышеуказанную команду из командной строки Windows.

Перейдите в меню "Пуск" и откройте "Выполнить", введите и нажмите OK

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –I

После этого перезагрузите IIS и протестируйте приложение, которое решает вашу проблему

В Visual Studio 2015: я изменил UseIIS в файле.csproj на false, и это сработало для меня.

<UseIIS>False</UseIIS>

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

У меня была такая же проблема со мной сегодня. И я нашел это раздражающим. Хотя у меня есть два других веб-сайта, которые уже разрабатываются из того же IIS, но я все еще не смог создать новый сайт. Странно, но я сделал это.

  • Удалить сайт из IIS
  • Создать новый сайт, дать ему имя "новый_сайт"
  • Выберите Пул приложений, отличный от имени самого сайта. Так что не стоит портить настройки по умолчанию.
  • Оставьте IP "неназначенным", если вы используете его с той же машины
  • дать ему какой-то неиспользуемый порт
  • Запустите Visual Studio как "Запуск от имени администратора", щелкнув правой кнопкой мыши на ярлыке исполняемого файла VS.
  • Вы сделали!

Вам не нужно выключать / переустанавливать что-либо, кроме того, что я указал, так как это работает.

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

Я надеюсь, что это поможет новичкам.

У меня такая же проблема. Для меня это было то, что я использовал те же документы, что и в предыдущей установке Windows. Простое удаление папки IISExpress из моих документов сделало свое дело.

В моем сообщении, кроме жалобы на "Невозможно получить доступ к метабазе IIS", в нем также упоминается, что нет доступа "<IISUrl>http://localhost:6416/</IISUrl>", Щелкните правой кнопкой мыши на проекте выгрузки, нажмите "Изменить", найдите строку "<IISUrl>http://localhost:6416/</IISUrl>"Прокомментируйте это. Перезагрузите и это должно работать. Это связано с тем, что администратор не имеет доступа к этому адресу.

Пользователи IIS Express - Использование моих документов в сетевой папке

Если ваш IIS Express application.config находится на сетевом диске, убедитесь, что диск подключен и подключен в "Мой компьютер".

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

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