2009-06-23 3 views
13

Я знаю, что ppl уже задавали вопросы относительно шифрования web.config.Ошибка шифрования web.config

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

aspnet_regiis -pef "ConnectionStrings" "C: \ encryptedWeb.config" шифрованной раздел конфигурации ... конфигурации для физического пути 'C: \ EncryptedWeb.config' не может быть открыт. Ошибка!

Я просто хочу знать, какими могут быть причины, по которым это не удалось.

Я получил ответ, это было свойство readonly для web.config, которое было проблемой. После того, как я удалил readonly, он работал как шарм.

ответ

0

Посмотрите на это, увидеть, если вы установите его правильно

http://msdn.microsoft.com/en-us/library/ms998283.aspx

possibiliity должен указать сайт с -сайт «Имя_узла» в противном случае он будет использовать веб-сайт по умолчанию.

+0

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

+0

Нет, web.config должен быть в приложении. И, насколько я знаю, у вас есть только один файл web.config для каждой папки. Я думаю, что 2 веб-конфигурации являются частью VS2010. – Stuart

+0

Файлы Web.config используются в иерархии, например, корневая папка будет иметь файл web.config, но может быть перенаправлена ​​в подпапки с другим web.config. Это то, о чем вы спрашивали? – Stuart

0

Вы могли бы попытаться использовать этот tool зашифровать ваш веб CONFIG

0

я испытывал такую ​​же проблему, и вот что работает для меня:

  1. добавить путь к папке этого инструмента aspnet_regiis на ваш% PATH% переменная. Это гарантирует, что инструмент доступен из любой папки в командной строке. Смотрите эту страницу для краткого объяснения о том, как добавить% PATH% переменные: http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx
  2. перейти на ваш веб-корневой папке (не знаю, если это необходимо, но вот где я был перемещаться, когда я выполнил команду)
  3. выполните команду с аргументом -pe и аргументом -app следующим образом:

    aspnet_regiis -pe {секция для шифрования} -app "{путь из корневой папки в приложение, например:"/myappname ", использование кавычек}

28

для команды "aspnet_regiis -pef" путь к файлу конфигурации - это физический путь (не виртуальный), а также путь к папке/папке, где находится web.config. Поэтому не следует включать имя файла в путь, например.

, если ваш путь web.config находится в D:\MyConfiguration\web.config то время шифрования/дешифрования вы будете использовать его следующим образом:

шифровать:

aspnet_regiis -pef [sectionName] "D:\MyConfiguration"

расшифровывать:

aspnet_regiis -pdf [sectionName] "D:\MyConfiguration"

+0

даже дополнительную обратную косую черту в D: \ MyConfiguration \ throw незаконную ошибку символа –

0

У меня такая же проблема при шифровании файла конфигурации с веб-сайта. Предоставить команду для шифрования с сайта, а не с сайта по умолчанию. Ниже командных работ, когда приложение находится в defaultwebsite: aspnet_regiis.exe -pe "ConnectionStrings" -app "/ имя_сайта" -prov "DataProtectionConfigurationProvider"

2

Секций регистрозависимы.

Не добавляйте \ в конец пути (не требуется web.config).

Вам не нужно делать это прямо на сайте; вместо этого скопируйте файл в любое место.

шифрованной:

aspnet_regiis -pef "SECTIONTOENTRYPT" "d:\tempEnCrypt" -prov WhateverProviderYouAreUsing 

дешифрование:

aspnet_regiis -pdf "SECTIONTOENTRYPT" "d:\tempEncrypt" 

Вы можете использовать это, чтобы зашифровать app.config, а также, просто переименовать файл для шифрования/дешифрования в web.config

1

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

Вы не должны помещать имя файла в путь, и файл ДОЛЖЕН называться web.config. Так для примера, если ваш файл web.config на самом деле в C:\ вы бы поставили:

aspnet_regiis -pef "connectionStrings" "C:\" 

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

Для тех людей, чей файл находится не в C:\, вам необходимо поместить полный путь к файлу (корень сайта). Вы также должны будете cd в каталог, содержащий файл aspnet_regiis.exe или поставить полный путь к файлу для инструмента, а также:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pef "ConnectionStrings" "C:\Ghron\Projects\Company\trunk\project1\project1" 

Кроме того, некоторые других ответов являются действительными пунктами - параметры чувствительны к регистру, поэтому ваши пути и имена разделов должны быть в правильном порядке. Я потратил около 20 минут, используя "ConnectionStrings" вместо "connectionStrings" (нижний регистр c).

0

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

Я также написал сценарий PowerShell для выполнения шифрования/дешифрования без решения aspnet_regiis: https://github.com/mhenry1384/EncryptDecryptConfig

Смежные вопросы