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

683

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

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

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

  • Запуск Visual Studio в качестве администратора
  • Запуск aspnet_regiis.exe -ga MyUserName
  • Запуск aspnet_regiis.exe -i

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

  • 26
    Вы определенно работаете в качестве администратора? Появляется ли диалоговое окно контроля учетных записей при запуске VS?
  • 42
    У меня была та же проблема, и когда я запустил VS в качестве администратора (щелкните правой кнопкой мыши и выберите «Запуск от имени администратора»), это сработало
Показать ещё 10 комментариев
Теги:
iis

32 ответа

11
Лучший ответ

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

Мое решение

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

1128

В Windows 8 Pro:

%systemroot%\inetsrv\config

В Windows 7 и 8.1 и 10

%systemroot%\System32\inetsrv\config 

(Где %systemroot% обычно C:\Windows)

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

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

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

  • 1
    Это сработало и для меня. Я нашел эту же информацию в ответе на форуме MSDN .
  • 0
    На самом деле в моей Windows 8 это была папка "C: \ Windows \ System32 \ inetsrv \ config" ... Надеюсь, это поможет ...
Показать ещё 23 комментария
199

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

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

Чтобы процитировать

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

  • 0
    Я определенно работаю администратором. Я получаю приглашение UAC, и оно успешно запускается оттуда. Я использовал это и с VS2010.
  • 0
    Попробуй это. Поместите следующее в командную строку. % windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis.exe -i
Показать ещё 11 комментариев
41

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

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

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

  • 1
    Я перепробовал все другие решения (права доступа к папке конфигурации, не использовать IIS, запустить VS от имени администратора, перезапустить IIS и т. Д.), Но это было единственное решение, которое мне помогло. Спасибо, что поделился!
  • 0
    Спасибо, это тоже помогло мне. Я использую VS2013, и структура файлов конфигурации файла проекта отличается от ответа Бруно Сены. Я собирался вырвать свои волосы, но потом вспомнил, что я смелый, и решил попробовать это решение, которое было быстрым решением.
Показать ещё 2 комментария
29

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

  • 9
    Отлично! Больше не нужно беспокоиться о том, чтобы работать от имени администратора. Папка для Win 7 находится здесь: C: \ Windows \ System32 \ inetsrv \ config
  • 0
    Windows 8 / IIS 7.0. Спасибо вам, это работа.
Показать ещё 2 комментария
22

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

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

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

<UseIIS>False</UseIIS>

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

  • 3
    В моем случае это уже установлено в false !?
  • 0
    Это работает для меня, но в чем здесь основная проблема? Это должно быть ложно на моем рабочем столе, но верно на моем ноутбуке. Поэтому, если я проверяю проект в TFS на моем ноутбуке, он не загружается на моем рабочем столе, и наоборот, пока я не изменю это.
Показать ещё 2 комментария
16

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

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 включен в Мои документы, и он либо не существовал, либо не мог быть доступен.

  • 0
    Как вы решили проблему. Я думаю, что сталкиваюсь с одной из 2 проблем.
  • 0
    Убедитесь, что каталог Projects и каталог My Documents находятся на локальном диске. Я положил их обоих на C: \.
Показать ещё 4 комментария
10

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

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

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

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

  • 0
    Нет. Это даст разрешения на чтение конфигурации IIS пулу веб-приложений, который работает под этим именем. Visual Studio не работает с этим удостоверением, поэтому он не помогает в этом вопросе. Кроме того, почему вы позволяете пулу приложений получать доступ к конфигурации IIS? Это напрашивается на неприятности.
  • 2
    +1, но вместо того, чтобы предоставить доступ к DefaultAppPool, я предоставил доступ на чтение / запись своему пользователю, и это исправило ошибку.
Показать ещё 1 комментарий
9

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

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

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

  • 0
    Мы работаем на виртуальной машине, в итоге коллега настроил общую папку, которая в итоге использовала папку «Мои документы» для сетевого пути. Как говорится в этом ответе, он не работает без папки документов. Я проверю, доступна ли эта папка первым делом в будущем, чтобы сохранить 2 часа, которые мы потратили на просмотр этих постов и тому подобное.
  • 0
    У меня тоже была эта проблема. Папка «Мои документы » находилась в общей сетевой папке, и проблема с сетью препятствовала доступу. Как только я решил проблему с сетью, Visual Studio перестала выдавать ошибку метабазы IIS.
5

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

  • Щелкните правой кнопкой мыши проект
  • Нажмите "Изменить"
  • Удалите следующую строку:

     <IISUrl>http://localhost:xxxxx </IISUrl>
    
  • Обновить проект

  • Теперь добавьте новый виртуальный каталог IIS, щелкнув правой кнопкой мыши Project > Properties > Web и выбрав "Использовать локальный веб-сервер IIS" (Uncheck Use IIS Express) и нажав кнопку "Создать виртуальный каталог".
  • 0
    Это не решит проблему OP, потому что вы не можете открыть проект, чтобы изменить URL, когда вы получаете эту ошибку.
  • 0
    Я частично не согласен с @ htm11h. У меня была ошибка ОП и я удалил одну запись выше (вне VS). Затем я запустил VS и смог хотя бы открыть свойства. Это не позволило мне сохранить изменения, поэтому мне пришлось один раз открыть %systemroot%\System32\inetsrv\config и продолжить работать как администратор; также откройте %systemroot%\System32\inetsrv\config\Export и сделайте то же самое. ( ошибка невозможна для доступа к методу iis )
Показать ещё 1 комментарий
5

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

4

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

3

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

  • Я пробовал работать как администратор
  • Все IIS/IIS выражают повторную установку.
  • Различные "хаки"

Пришел к исправлению реестра снова.

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

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

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

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

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

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

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

3

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

<UseIIS>True</UseIIS>

сначала "False".

  • Открыл решение и обеспечил загрузку проекта.
  • Закрыть решение и этот экземпляр Visual Studio
  • Снова измените значение на "True".
  • Откройте решение. На этот раз я не получил никаких ошибок/предупреждений. Я мог бы также работать с Ctrl + F5 или F5 без каких-либо проблем, пока мой проект был сопоставлен с веб-сайтом IIS.
  • 0
    Это помогло мне с VS 2015, Win10. Полезные советы здесь, неприятная проблема. Большое спасибо.
  • 0
    Это в web.config? Если так, то где?
Показать ещё 1 комментарий
2

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

  • Настроить VS для запуска как admin
  • Удалите IIS с помощью "Установка и удаление программ", "Возможности Windows"
  • Reboot
  • Запустите WinRAR или что-то похожее на admin и archive C:\windows\system32\inetsrv\
  • Запустите cmd как admin и rmdir /s c:\windows\system32\inetsrv\, чтобы полностью удалить все следы последней установки. Оставьте расширенный приглашение cmd для дальнейшего использования.
  • Переустановите IIS с совместимостью с IIS 6 Metabase (сомневаюсь, что это было необходимо).
  • Оставьте Default AppPool и Default Website как есть (я ранее удалил оба)
  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732
  • Ran 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 при каждом перезапуске. Не волнует.

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

  • 0
    Примечание для будущего: я обновил Windows 10 до предварительного выпуска, и он снова сломался. На этот раз я запустил 2x aspnet_regiis и команду subst и вернулся к работе. Ой. И не забудьте заводить часы.
2

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

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

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

  • 0
    Мне пришлось изменить ключ, который вы упомянули, а также HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal . Это произошло из-за того, что путь к профилю был задан как несуществующий каталог в Active Directory / групповой политике.
  • 0
    Третий виновник - HKEY_CURRENT_USER\Software\Microsoft\IISExpress , который является переопределенным пользовательским HKEY_CURRENT_USER\Software\Microsoft\IISExpress , и еще один потенциальный виновник этой проблемы.
2

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

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

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

2

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

Шахта заключалась в том, что пул приложений просто отключен. Я снова включил его, и все было хорошо.

2

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

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

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

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

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

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

1

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

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

<UseIISExpress>false</UseIISExpress>


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

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

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


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

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

1

Откройте командную строку визуальной студии и введите команду ниже и запустите aspnet_regiis -ga машинное имя \ASPNET После выполнения указанной выше команды Reset IIS и протестируйте приложение, которое решит вашу проблему.

Если вышеприведенная команда не решит вашу проблему, попробуйте выполнить команду ниже в командной строке Visual Studio

aspnet_regiis -i Кроме того, мы можем запускать команду выше из командной строки Windows и

Перейдите в меню "Пуск" и откройте "Выполнить" и введите "ОК"

% windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -I После этого Reset IIS и протестируйте приложение, разрешающее вашу проблему

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

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

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

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

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

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

0

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

0

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

0

Я испытал это на 64-разрядной машине Windows 10 Professional, и ни один из других ответов, опубликованных здесь, не помог. Это началось после того, как я испытал синий экран смерти, и я обнаружил, что ОАК снова включился. Запуск Visual Studio в качестве одного из администраторов не был решением, так как мой исходный элемент управления был на сетевом диске, к которому Visual Studio не смог получить доступ с помощью UAC.

Отключение UAC с помощью GPEDIT устранило проблему.

0

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

0

Вы можете решить эту проблему, фактически сняв флажки инструментов IIS в списке функций Windows. Затем восстановите установку Visual Studio 2013 и убедитесь, что веб-разработчик проверен. Он установит IIS 8, с которым VS будет работать хорошо.

0

Я использую Win 8 Pro и VS 2013. Попробовав все на этой странице... Я просто переустановил IIS Express 8, и теперь все работает нормально (даже без запуска в качестве администратора).

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

0

У меня была аналогичная проблема. Visual Studio не загружал веб-проекты и не показывал ошибку: создание виртуального каталога < myproj: myport > не смогли. Не удалось получить доступ к метабазе IIS.

В моем случае это был IISExpress, который был в корне проблемы. Щелкнув правой кнопкой мыши на IIS Express в программах и функциях панели управления и выбрав ремонт, исправил проблему менее чем за две минуты.

0

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

-1

Создайте новый WebSite, после того, как ошибка перейдет в папку, в которой вы создали проект, в приложении txt откройте файл .csproj, найдите этот тег "<UseIIS>" и измените "false" на "true", в строках ниже найдите тег "<IISUrl>", затем поместите iis url (найдите url в iis), ваши теги должны быть такими:

<WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>0</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost/yourIISAppAlias
      </IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
    </WebProjectProperties>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню