2009-06-23 22 views
13

Sé que las personas ya han hecho preguntas sobre el encriptado de web.config.encriptación web.config error fallido

También estoy tratando de cifrar mi archivo de configuración de prueba, pero estoy recibiendo este error.

aspnet_regiis -pef "connectionStrings" "C: Cifrado de sección de configuración \ encryptedWeb.config" ... la configuración de ruta física 'C: \ EncryptedWeb.config' no se pueden abrir. Falló

Solo quiero saber qué razones pueden haber fallado.

Recibí la respuesta, era la propiedad de sólo lectura del web.config, que era el problema. Después de eliminar el readonly Funcionó como un amuleto.

Respuesta

0

Tome un vistazo a esto, ver si se establece correctamente

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

Un possibiliity es especificar el sitio con -sitio "SiteName" de lo contrario se usará el sitio web por defecto.

+0

Tengo dos preguntas. Primero, podemos probar individualmente el archivo de configuración que no forma parte de ninguna aplicación. Y si tengo dos archivos de configuración en mi IIS, cómo elegir uno de ellos. – alice7

+0

No, un web.config debe estar en una aplicación. Y, que yo sepa, solo tiene un web.config por carpeta. Creo que 2 web configs son parte de VS2010 – Stuart

+0

Los archivos Web.config se emplean en una jerarquía, por ejemplo, la carpeta raíz tendrá un web.config, pero se puede sobrepasar en las subcarpetas con otro web.config. ¿Es eso lo que preguntabas? – Stuart

0

Se podría tratar de utilizar este tool para cifrar que web.config

0

que estaba experimentando el mismo problema y esto es lo que funcionó para mí:

  1. añadir ruta de la carpeta de la herramienta aspnet_regiis a su% PATH% variable. Esto asegura que la herramienta es accesible desde cualquier carpeta en su línea de comando. Vea esta página para una breve explicación de cómo agregar% PATH% variables: http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx
  2. navegar a la carpeta raíz del servidor web (no sé si esto es necesario, pero eso es donde me navegado cuando ejecuta el comando)
  3. ejecute el comando con el argumento -pe y el argumento -app como este:

    aspnet_regiis -pe {section to encrypt} -app "{ruta desde la carpeta raíz a la aplicación, como:"/myappname ", use quotes}

28

para el comando "aspnet_regiis -pef" la ruta del archivo de configuración es ruta física (no virtual) y también es la ruta de directorio/carpeta donde reside web.config. Entonces, uno no debe incluir el nombre del archivo en la ruta, p.

si la ruta está en web.config D:\MyConfiguration\web.config entonces al cifrar/descifrar lo va a usar de la siguiente manera:

cifrar:

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

descifrar:

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

+0

incluso una barra invertida adicional en D: \ MyConfiguration \ arroja un error de carácter ilegal –

0

Tengo el mismo problema al encriptar el archivo de configuración de un sitio web. Proporcione el comando para cifrar desde un sitio y no el sitio web predeterminado. A continuación comando funciona cuando la aplicación está en defaultwebsite: aspnet_regiis.exe -pe "connectionStrings" -app "/ nombre del sitio" -PROV "DataProtectionConfigurationProvider"

2

Las secciones son mayúsculas y minúsculas.

No agregue \ al final de la ruta (no se necesita web.config).

No necesita hacerlo directamente en un sitio; en su lugar, copie el archivo a cualquier ubicación.

de cifrado:

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

Decodificación:

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

Usted puede usar esto para cifrar un app.config así, simplemente cambiar el nombre del archivo para el cifrado/descifrado como web.config

1

Sé que esto es viejo, pero acabo de tener el mismo problema y ninguna de las otras respuestas tiene el problema.

Se supone que no debe poner el nombre de archivo en la ruta, y el archivo DEBE llamarse web.config. Así, por tu ejemplo, si el archivo es en realidad en web.configC:\ que pondría:

aspnet_regiis -pef "connectionStrings" "C:\" 

y el archivo se debe llamar web.config como la herramienta sólo buscará ese archivo.

Para aquellas personas cuyo archivo no está en C:\, tendrá que poner la ruta completa al archivo (raíz del sitio). También tendrá que cd en el directorio que contiene el archivo aspnet_regiis.exe o poner la ruta completa del archivo de la herramienta así:

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

Además, algunas de las otras respuestas son puntos válidos - los parámetros de mayúsculas y minúsculas, entonces sus caminos y nombres de sección deben estar en el caso correcto. Perdí unos 20 minutos usando "ConnectionStrings" en lugar de "connectionStrings" (c minúscula).

0

Recibí un error de "caracteres ilegales en la ruta" que desapareció cuando eliminé las comillas dobles que rodeaban mi nombre de ruta. No tiene ningún sentido, pero ahí estás.

También escribió un script de PowerShell para realizar el cifrado/descifrado sin tratar con aspnet_regiis: https://github.com/mhenry1384/EncryptDecryptConfig