2011-11-03 6 views
6

Jestem tak zdezorientowany. Chcę używać programu SQL Server na moim komputerze stacjonarnym, gdy rozwijam i używam Live SQL Server, kiedy publikuję swój projekt. Gram z materiałem transformacji w Visual Studio 2010.Dlaczego podczas publikowania wyświetlany jest komunikat o błędzie "Brak atrybutu" nazwy "Lokalizator dopasowań"?

Podczas próby opublikowania mojego projektu otrzymuję nazwę "Brak atrybutu" dla Lokalizatora dopasowań.

Mój plik Web.config zawiera:

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

ja wciąż testuje go, więc teraz, mój plik Web.Release.config zawiera:

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

Wszystko widzę Online jest tylko myląc mnie więcej. Jakąkolwiek pomoc w uzyskaniu mnie i uruchomieniu?

Odpowiedz

5

Doh! Problem był w sekcji sessionState. Powinno być:

<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) oznacza, że ​​system będzie pasował węzły zastąpić stosując nazwę tag. Jeśli nie masz atrybutu nazwa, to się nie powiedzie. Musisz mieć unikalny atrybut, aby użyć tego typu transformacji.

2

Używanie "nazwa" w Dopasuj (nazwa) dotyczy typowego ustawienia konfiguracyjnego, jak poniżej. Kluczem w tym przypadku jest "imię".

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

Jeśli klucz w ustawieniach jest coś innego, to co trzeba użyć:

<add token="UserToken" value="23jkl2klk2j3kja9d8f" xdt:Transform="SetAttributes" xdt:Locator="Match(token)"/> 
Powiązane problemy