2011-11-03 11 views
6

Sono così confuso su questo. Voglio utilizzare SQL Server sul desktop quando sviluppo e utilizzo di Live Server SQL quando pubblico il mio progetto. Sto giocando con le cose di trasformazione in Visual Studio 2010.Perché ricevo un "Nessun attributo" nome "per l'indicatore di ricerca" durante la pubblicazione?

Ricevo il "Nessun attributo 'nome' esiste per il localizzatore di corrispondenza" quando provo a pubblicare il mio progetto.

mio file 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> 

sono ancora testarlo, quindi per ora, il mio file Web.Release.config contiene:

<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> 

Tutto ciò che sto vedendo in linea è solo confondermi di più Qualche aiuto per farmi funzionare?

risposta

5

Doh! Il problema era nella sezione sessionState. Dovrebbe essere:

<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) significa che il sistema abbinerà i nodi di sostituire utilizzando nome tag. Se non hai l'attributo nome allora fallisce. È necessario disporre di un attributo univoco per utilizzare questo tipo di trasformazione.

2

L'utilizzo di "nome" in Corrispondenza (nome) è per una tipica impostazione di configurazione come la seguente. La chiave in questo caso è "nome".

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

Se la chiave nel vostro ambiente è un'altra cosa, questo è ciò che è necessario utilizzare:

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