2010-05-14 27 views
22

He desglosado el archivo web.config horriblemente difícil de manejar en archivos individuales para algunas de las secciones (por ejemplo, connectionStrings, autenticación, páginas, etc.) utilizando el atributo configSource.web.config, configSource y "El elemento 'xxx' no está declarado" advertencia

Esto funciona bien, pero los archivos xml individuales que contienen la sección 'fragmentos' provocan advertencias en VS.

Por ejemplo, un archivo llamado roleManager.config se utiliza para la sección de administrador de funciones y tiene el siguiente aspecto:

<roleManager enabled="false"> 
</rolemanager> 

Sin embargo consigo un garabato azul bajo el elemento roleManager en VS, y la siguiente advertencia : The 'roleManager' element is not declared

Supongo que esto tiene que ver con xml y esquemas válidos, etc. ¿Existe una manera fácil de arreglar esto? Algo que puedo agregar a los archivos individuales?

Gracias

P. S. He escuchado que es una mala práctica romper el archivo web.config así. Pero realmente no entiendo por qué, ¿alguien puede iluminarme?

+5

no veo por qué puede ser una mala práctica. Tenga en cuenta que cambiar estos archivos .config NO dará como resultado un reinicio de la aplicación web (como si hubiera editado el web.config) – Timores

+0

No me di cuenta de que, gracias, es bueno saberlo. – UpTheCreek

+0

Una cosa buena acerca de usar el atributo configSource es si tiene que entregar su código a otra persona para colocarlo dentro de los servidores de su compañía, ellos pueden ver fácilmente lo que necesitan cambiar en la configuración web (connectionStrings, etc ...) para su entorno. –

Respuesta

2

Creo que obtienes los garabatos azules ya que el esquema de tu archivo web.config no declara estas secciones de configuración personalizada que has 'dividido' en archivos individuales.

Al investigar esto, veo que algunas de mis soluciones tienen el mismo problema, pero las secciones de configuración que se proporcionan desde microsoft NO tienen los garabatos. por ejemplo: hemos extraído los conjuntos de aplicaciones y las conexiones en sus propios archivos, y no obtienen los garabatos, pero sí nuestros patrones personalizados.

Traté de ver el esquema de microsoft en schemas.microsoft.com/.netconfiguration/v2.0, pero obtengo un 404 cuando intento descargarlo.

Lo que estoy tratando de decir es que si obtiene una copia del esquema de MS y lo modifica para incluir sus archivos de configuración externos, ¡debería poder deshacerse de los temidos garabatos!

HTH, lanza

+0

Gracias lanza voy a investigar eso. He notado algo similar con algunas secciones que no causan problemas. Me parece que las secciones que están directamente debajo del elemento (root) no tienen un problema (como las conexiones), mientras que las que están un nivel por debajo de la raíz (como roleManager, que está bajo tiene problemas – UpTheCreek

26

Buscando una solución a esta cuestión utilizando archivos de configuración personalizada, he encontrado esta solución. No sé si es el correcto.

El problema es que VS no puede encontrar un esquema para validar su .config (xml). Si está utilizando elementos de configuración "nativos" o cuando crea sus archivos .config personalizados, debe establecer en cada documento xml un esquema.

Por defecto (en VS9 por ejemplo) todos los archivos xml utilizan \ Microsoft Visual Studio 9.0 \ Xml \ Schemas \ DotNetConfig.xsd pero puede agregar más esquemas para usar.

Antes de asignar un esquema debe crearlo.

Para crear un nuevo esquema según su propia costumbre.config:

  1. abrir su archivo de configuración personalizada
  2. en XML barra de menú> Crear esquema
  3. guardarlo

Para asignar el esquema:

  1. abrir su archivo de configuración personalizada
  2. en el panel de propiedades: haga clic en el botón Examinar [..]
  3. establecer la columna 'Uso' a su esquema de reciente creación

puede asignar la mayor cantidad que desee. o tiene un esquema para todos los archivos de su diferente personalizados .config

(Lo siento, pero mi Inglés no es tan bueno)

+3

Funciona bien. Por cierto, VS2012 agrega automáticamente el esquema recién creado a la lista de esquemas asignados a su archivo XML. –

+0

Esto también eliminó errores de esquema extraños reportados en mi Web.config para el proyecto ASIM SOAP. –

+0

Para asignar su esquema En VS 2015, Menú superior/Xml/Esquemas .../Agregar ... luego seleccione el archivo xsd que se generó en el primer paso. – hkutluay

Cuestiones relacionadas