2009-08-25 16 views
5

¿Por qué hay otra sección llamada connectionStrings? Siempre acabo de utilizar appSettings, hasta que noté esto en un nuevo proyecto:¿Diferencia entre appSettings y connectionStrings en el archivo Web.config?

<appSettings> 
<add key="SqlConnString" value="server=ABC;database=ABC;uid=A;pwd=B;"/> 
</appSettings> 

<connectionStrings>  
</connectionStrings> 

¿Hay alguna diferencia? ¿Alguna razón por la que debería usar una sobre la otra?

Respuesta

9

Desde el documentation:

El elemento connectionStrings especifica una colección de bases de datos cadenas de conexión, como el nombre/valor pares, para las aplicaciones ASP.NET y características.

En versiones anteriores de ASP.NET, las cadenas de conexión se almacenaban en el appSettings. En ASP.NET 2.0, las características, como Session, Membership, Personalization y Role Manager, dependen de las cadenas de conexión que están almacenadas en el elemento connectionStrings . También puede usar el elemento connectionStrings para almacenar las cadenas de conexión para sus propias aplicaciones .

Por lo tanto, la única diferencia real es que las características ASP.NET 2.0 integradas esperarán que sus cadenas de conexión estén en el área connectionStrings.

+0

¿Por qué la sesión, la membresía, la personalización y el administrador de roles no se han aprovechado de la configuración de la aplicación? ¿Qué funcionalidad adicional proporcionan las cadenas de conexión que la configuración de la aplicación no ofrece? – Paul

2

Si separa las cadenas de conexión en la sección <connectionStrings>, su configuración será más fácil de leer, mantener y manejar.

Además, puede aumentar su seguridad encriptando solo las cadenas de conexión, ya que normalmente son los elementos sensibles, y si están en su propia sección, puede cifrar fácilmente esa sección y dejar el resto de su aplicación.config en texto plano, por lo que puede actualizar y modificar fácilmente la configuración.

Marc

+0

Puede cifrar fácilmente la configuración de la aplicación. En cuanto a la separación, puedo pensar en muchas formas diferentes de organizar las aplicaciones además de las cadenas de conexión frente a las aplicaciones. Espero que haya más en la decisión de MSFT de introducir esta separación de lo que Eric mencionó. Esto parece arbitrario de lo contrario. – Paul

+0

Además, esta decisión parece tener extraños efectos secundarios hoy. En Azure App Service Plans, puede configurar la configuración de la aplicación (tanto la configuración de la aplicación como las cadenas de conexión). Sin embargo, la configuración de la aplicación no anula la configuración de la aplicación app.config mientras que las cadenas de conexión anulan las cadenas de conexión de app.config. Debido a esto, ahora estoy poniendo configuraciones de cadena sin conexión en cadenas de conexión simplemente para la capacidad de anulación de las cadenas de conexión. No me resulta más fácil de leer, mantener o manejar. – Paul

+0

@Paul - La configuración de la aplicación establecida en el portal DO anula AppSettings en el archivo web.config de su sitio web o en el archivo app.config de su sitio web. Uso esto todo el tiempo. – Tim

Cuestiones relacionadas