Ошибка - невозможно получить доступ к метабазе IIS
После установки Visual Studio 2012 и открытия моего решения я получаю ряд ошибок в этой форме:
Проект веб-приложения Foo настроен на использование IIS.
Невозможно получить доступ к метабазе IIS. У вас недостаточно прав для доступа к веб-сайтам IIS на вашем компьютере.
Я получаю это для каждого из наших веб-приложений. Вещи, которые я пробовал:
- Запуск Visual Studio от имени администратора
- Запуск aspnet_regiis.exe -ga MyUserName
- Запуск 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, щелкните правой кнопкой мыши на неудачном проекте и выберите "Обновить".
У меня была эта проблема - симптомы были такими же, но проблема заключалась в том, что я установил папку "Мои документы" в общий сетевой ресурс, а общий ресурс был недоступен.
Основная проблема заключалась в том, что файлы конфигурации IIS, расположенные по адресу%USERPROFILE%\Documents, недоступны. Как только я изменил расположение папки "Мои документы" (я изменил значение reg), он снова начал работать.
Я знаю, что это может быть не обычный сценарий, с которым вы можете столкнуться, но я разместил его здесь, потому что он дает те же симптомы.
Я столкнулся с этим сегодня и исправил проблему, удалив IISUrl из файла проекта:
- Щелкните правой кнопкой мыши проект
- Нажмите Редактировать
Удалить следующую строку:
<IISUrl>http://localhost:xxxxx </IISUrl>
Перезагрузить проект
- Теперь добавьте новый виртуальный каталог IIS, щелкнув правой кнопкой мыши Project > Properties > Web и выбрав Use Local IIS Web Server (снимите флажок Use IIS Express) и нажав кнопку Create Virtual Directory.
Вы можете столкнуться с этой проблемой и иметь ту же проблему, что и я. Я "решил" это раньше, а затем отключил питание, и компьютер вышел из строя, не уверенный, почему параметр реестра был отменен, но это ИСТОЧНИК моей проблемы.
- Я пытался все работает в качестве администратора
- Все IIS / IIS Express переустанавливается.
- Различные "хаки"
Дошло до того, что пришлось снова исправлять реестр.
Не может как администратор даже открыть regedit (необходим доступ к реестру, поскольку проблема не в шаблоне администратора gpedit.msc)
UnHookExec.inf на рабочем столе
Просто сохраните UnHookExec.inf и установите его, щелкнув правой кнопкой мыши и выбрав "Установить". При установке файла не будет отображаться всплывающее окно или окно с уведомлением. http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html
- 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 предприятия.
- Создать ярлык для "devenv.exe"
- выберите опцию "Запуск от имени администратора" для ярлыка
- нажмите на ярлык и снова откройте ваш проект
Откройте командную строку 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
находится на сетевом диске, убедитесь, что диск подключен и подключен в "Мой компьютер".
Я столкнулся с этой проблемой, и когда я повторно подключил сетевые диски в Мой компьютер, проблема была решена.