asp.net - off - web.config configuration file
ApplicationSettings y Web.config (3)
¿Nota el atributo de name
de la sección?
intente eliminar su elemento de la envoltura <applicationSettings>
<Tools.Instrumentation.Properties.Settings>
<setting name="LogLevel" serializeAs="String">
<value>DEBUG</value>
</setting>
<setting name="AppName" serializeAs="String">
<value>MyApp</value>
</setting>
<setting name="Port" serializeAs="String">
<!--value>33333</value-->
<value>0</value>
</setting>
</Tools.Instrumentation.Properties.Settings>
Ahora puedes usar la sección. Pero no tiene la clase contenedora generada, necesitará hacer un poco más de trabajo para obtener sus valores con ConfigurationManager
.
En cuanto a la segunda parte de su pregunta, desde una perspectiva, hay poca o ninguna diferencia en la forma en que los archivos de configuración son tratados por una aplicación web frente a las aplicaciones de formularios.
La única diferencia saliente que puede o no ser relevante aquí es la forma en que los archivos web.config pueden ser asignados jerárquicamente, cada archivo subsiguiente aumenta o modifica efectivamente la configuración principal, cuando se permite. Pero esto es más una diferencia de comportamiento en lugar de una diferencia funcional, en mi opinión.
Tengo una DLL que proporciona el registro que uso para los proyectos de WebForms y ahora deseo usarlo en un proyecto de ASP.Net MVC 2.
Algunos aspectos de esa DLL están configurados en app.config:
<configuration>
<configSections>
<section name="Tools.Instrumentation.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Tools.Instrumentation.Properties.Settings>
<setting name="LogLevel" serializeAs="String">
<value>DEBUG</value>
</setting>
<setting name="AppName" serializeAs="String">
<value>MyApp</value>
</setting>
<setting name="Port" serializeAs="String">
<!--value>33333</value-->
<value>0</value>
</setting>
</Tools.Instrumentation.Properties.Settings>
</configuration>
Sin embargo, cuando creo una entrada similar en Web.config
, Web.config
el error:
Configuración de la sección no reconocida
Mi pregunta de dos partes:
- ¿Cómo puedo hacer que esta entrada de configuración funcione en
Web.config
? - ¿Dónde puedo leer las diferencias conceptuales entre la configuración de WinForms y la configuración de ASP.Net?
A su archivo de configuración le faltaba el grupo de la sección de ajustes de aplicación:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Tools.Instrumentation.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
Si agrega eso, puede poner su sección de Configuración dentro de la etiqueta y su ensamblaje debería leer de ella como de costumbre.
Aquí está la versión .NET 4 de la configuración que falta:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Tools.Instrumentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
Asegúrese de actualizar el espacio de nombres del valor del atributo de name
de la <section>
para que coincida con el suyo.