2011-11-03 15 views
6

Estoy tan confundido con esto. Quiero usar SQL Server en mi escritorio cuando desarrollo y uso el servidor SQL en vivo cuando publico mi proyecto. Estoy jugando con las cosas de la transformación en Visual Studio 2010.¿Por qué aparece el error "No existe ningún atributo" para el Localizador de coincidencias al publicar?

Aparece el "No atributo 'nombre' existe para Match Locator" cuando intento publicar mi proyecto.

Mi archivo Web.config contiene:

<connectionStrings> 
    <add name="EFDbContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=db" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

<system.web> 
    <sessionState mode="SQLServer" sqlConnectionString="Server=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=ASPState;Application Name=eGov" timeout="20" allowCustomSqlDatabase="true" /> 
</system.web> 

Todavía estoy probando, así que por ahora, mi archivo contiene Web.Release.config:

<connectionStrings> 
    <add name="EFDbContext" 
     connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=db" 
      providerName="System.Data.SqlClient" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> 
</connectionStrings> 

<system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    <sessionState mode="SQLServer" 
     sqlConnectionString="Server=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=ASPState;Application Name=app" 
     timeout="20" allowCustomSqlDatabase="true" 
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> 
</system.web> 

cualquier cosa que estoy viendo en línea es solo confundiéndome más. ¿Alguna ayuda para ponerme en marcha?

Respuesta

5

Doh! El problema estaba en la sección sessionState. Debe ser:

<system.web> 
    <sessionState mode="SQLServer" 
     sqlConnectionString="Server=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=ASPState;Application Name=app" 
     timeout="20" allowCustomSqlDatabase="true" 
     xdt:Transform="SetAttributes" xdt:Locator="XPath(configuration/system.web/sessionState)" /> 
</system.web> 
11

xdt:Locator="Match(name) quiere decir que el sistema coincidirá con nodos para reemplazar el uso de nombre etiqueta. Si no tiene el atributo name, falla. Debe tener algún atributo único para usar este tipo de transformación.

2

El uso de "nombre" en Coincidir (nombre) es para una configuración de configuración típica como la siguiente. La clave en este caso es "nombre".

<add name="errorAddress" email="[email protected]" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> 

Si la llave en su entorno es otra cosa, eso es lo que es necesario utilizar:

<add token="UserToken" value="23jkl2klk2j3kja9d8f" xdt:Transform="SetAttributes" xdt:Locator="Match(token)"/> 
Cuestiones relacionadas