IIS Express 8-не удается записать файл конфигурации
Я пытаюсь использовать IIS Express 8 для сайта MVC в VS2012. Я получаю следующую ошибку, когда я пытаюсь создать сайт:
именем: ?C:UsersxxxxxxDocumentsIISExpressconfigapplicationHost.config
Ошибка: не удается записать файл конфигурации
есть ли способ заставить IIS Express использовать другое место для папок config & logs? Я понимаю, что могу указать на другое место, когда я бегу. iisexpress.exe из командной строки, но я не контролирую это при использовании Visual Studio.
кроме того, у кого-нибудь есть предложения, почему происходит ошибка? (Примечание: мой ноутбук находится в корпоративной среде, которая имеет глупое шифрование в папке "документы", однако у меня не было никаких проблем с другим программным обеспечением, которое сохраняет в этом месте. Я также предоставил группе " все " полный доступ к папке.)
EDIT-после следующего инструкции в http://learn.iis.net/page.aspx/1286/iis-80-express-readme/ я все еще не могу заставить это работать. Я пробовал следующее:
- добавлен HKCUSoftwareMicrosoftIISExpressCustomUserHome раздел реестра, указывающий на мой альтернативный каталог
- добавлен HKCUSoftwareMicrosoftIISExpress8.0 CustomUserHome раздел реестра, указывающий на мой альтернативный каталог
- добавил HKLMSoftwareMicrosoftIISExpressCustomUserHome раздел реестра, указывающий на мой альтернативный каталог
- добавлен HKLMSoftwareMicrosoftIISExpress8.0 CustomUserHome раздел реестра, указывающий на мой альтернативный каталог
- установка переменной среды %IIS_USER_HOME%, указывающей на мой альтернативный каталог.
какие-то другие предложения?
12 ответов
@Brad
У меня только что была такая же проблема. Удаление шифрования в папке IISExpress и атрибут "только для чтения" решили его. В моей компании документы также зашифрованы, но я не думаю, что удаление этого шифрования из IISExpress будет проблемой любого рода.
надеюсь, что это помогает.
Я также нахожусь в корпоративной среде с шифрованием в папке "пользователи", и удаление шифрования и удаление флагов только для чтения во всем, что в папке IISExpress работало для меня.
У меня было очень похожее сообщение об ошибке, вызванной совершенно другая проблема.
Ошибки:
C:\VS\TFS_Projects\SomeSolution\SomeProject\SomeProject.csproj файл : ошибка : создание виртуального каталога http://localhost:55063/ ошибка с ошибкой: Filename:\\?\C:\VS\TFS_Projects\SomeSolution.vs\config\applicationhost.конфиг Ошибка:не удается записать файл конфигурации из-за недостаточного разрешения
подробнее: я даже не мог открыть проект, так как открытие его не удастся.
Я мог бы получить предыдущие наборы изменений, и они действительно откроются нормально, но если я получу последние проекты не могут быть открыты.
устранение: в моем случае оказалось, что когда мы меняли серверы TFS, кто-то добавил ".vs" папка для управления версиями вместе со всем остальным. Под которым один разработчик имел свой applicationhost.config настроить для запуска сайтов на диске D:\, в то время как у меня не было такого диска D:\ (Ну, это был DVD-привод.) Я смог получить эту работу, найдя предыдущий набор изменений с неизмененным applicationhost.config и замена моего локального файла. (Я бы попытался вообще удалить папку, но я не пошел по этому пути.)
после этого мы удалили ".vs " папка из системы управления версиями.
(Я поставил это решение здесь, потому что это, где Google приземлился меня, поэтому другие люди, имеющие это сообщение об ошибке, могут найти вышеуказанные решения, не исправить это для них, и, таким образом, у них может быть эта проблема.)
для любого, кто гуглит это; это может быть та же проблема, что и это: http://connect.microsoft.com/VisualStudio/feedback/details/878812/use-iis-express-is-broken-in-vs-2012-on-windows-8-1
вы можете проверить это, загрузив Prcocess Monitor и запустите его с фильтром для "Путь" содержит "\Documents\IISExpress\config", а затем попробуйте изменить проект на использование IIS Express. Если есть запись CreateFile с результатом 0xC0190052 как один из последние записи, то это та же проблема.
C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config
снимите атрибут только для чтения из файла. У меня получилось.
Я использую Visual Studio 2017 в Windows 10, и для устранения этой проблемы мне пришлось отключить параметр OneDrive "экономить место и загружать файлы по мере их использования". После изменения настройки мой компьютер разбился, но после перезагрузки я смог изменить SSL включен, и все работало.
добавление записи реестра, похоже, работает, однако использование переменных среды в записи реестра не работает. В моей среде перенаправляется только каталог документов, поэтому я просто хотел переместить каталог IIS Express config на один уровень в каталог %USERPROFILE%. Однако это не сработало. IIS Express буквально прочитал переменную среды и, конечно, не удалось запустить.
У меня была такая же проблема раньше, работает VisualStudio от имени администратора (Запуск от Administrtor) решен вопрос.
У меня также была проблема, и я попытался исправить ее, установив раздел реестра в HKCU\Software\Microsoft, который не работал.
ошибка, которую я сделал, использовала HKCU, потому что, поскольку у меня нет разрешений на редактирование реестра под обычной учетной записью (которую я использую для запуска visual studio), я использовал учетную запись администратора. Тогда, конечно, HKCU был для этого счета.
поэтому я просто использовал HKEY_USERS\"SID моего обычного пользователя" вместо этого и при запуске iisexpress.исполняемый вручную он создавал свои файлы в указанном месте. Что все еще не работало, так это использование iisexpress из visual studio. По-прежнему казалось, что VS вообще не использовал параметр реестра.
наконец, я прибегнул к настройке не UNC-пути для папок оболочки\личных и пользовательских папок оболочки\личных В HKU\ "SID моего обычного пользователя" \Software\Microsoft\Windows\CurrentVersion\Explorer\ , который сделал трюк.
Я получил ту же ошибку, но в другом контексте. Открытие проекта (.файл csproj), предоставленный другим разработчиком, вернул эту ошибку и ничего не смог сделать:
создание виртуального каталога http://localhost:58753/
ошибка: Имя файла: \?\C:\Users\xxxxx\Documents\Clients\xxx\Gen II\xxx\, vs\config\applicationhost.конфиг Ошибка: не удается записать файл конфигурации
Я удалил оба Шифрование и атрибут R/O из каталога, содержащего файлы проекта и примененного ко всем подпапкам и файлам. Visual Studio теперь может читать проект.
в моем случае я переместил папку в другое место, поэтому мне пришлось редактировать applicationhost.файл конфигурации и изменил запись virtualdirectory на новое местоположение. Удаление шифрования и установка read only off не помогли. Я думаю, если бы я просто скопировал его, а не переместил, он бы с радостью продолжал работать.
после борьбы с этим и проверки шифрования и атрибутов только для чтения, и их не работает, мое решение закончилось тем, что:
- перейдите в папку, содержащую папку IISExpress (в моем случае это было в моем OneDrive, а не в папке документов)
- Правой Кнопкой Мыши на
IISExpress
папки > вкладка "Безопасность" > "дополнительно" - измените владельца на себя, даже если он уже есть
- поставьте галочку "заменить владельца подконтейнеров и объектов" коробка
- это может не появиться, пока вы не завершите диалог изменения владельца
- открыть
IISExpress
папку - Правой Кнопкой Мыши на
config
папки > вкладка "Безопасность" > "дополнительно" - Добавить пользователя > добавить участника
- изменить местоположение на локальную машину (а не домен)
- введите имя
NETWORK SERVICE
и "проверить имена" - нажмите OK, чтобы вернуться к диалогу Advance Security
- обязательно установите флажок "заменить все записи разрешений дочернего объекта наследуемыми от этого объекта с разрешение записи"
работал в Windows 10 С IISExpress 10, как для VS 2013, так и для VS 2017.