Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 125

Z chwilą przeniesienia nowej aplikacji na serwer produkcyjny przestało działać połączenie z bazą danych. Problem dotyczy zarówno kont logowania użytkowników jak i Entity Framework.

W jaki sposób skonfigurować automatyczną aktualizację łańcucha połączenia, by poprawny web.config został przekazany do serwera hostingowego bez ręcznej zmiany ścieżki w pliku lokalnym przed każdą aktualizacją kodu?

  • Zapytał
  • @ | 03.07.2015
  • TRENER ALTKOM AKADEMII

Odpowiedź (1)

  • 0

Sam pytam, sam odpowiadam :)

Za zamianę łańcucha połączenia w projektach ASP.NET (ja używam C#, ale to nie ma znaczenia) odpowiadają wpisy w pliku Web.Release.config, który można odnaleźć rozwijając listę po kliknięciu obok Web.config.

Oto przykładowa zawartość, którą najczęściej wykorzystuję, gdy serwerem producyjnym jest Microsoft Azure. Pierwszy przykład dotyczy przypadku, gdy łańcuch połączenia (connection string) wykorzystywany jest przez Entity Framework, a drugi w pozostałych przypadkach dostępu do bazy. 

Zamień nazwę bazy danych na serwerze produkcyjnym (MojaBaza_db), identyfikator (MojaBaza@MojaBaza oraz hasło (ZXC) na swoje własne.

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

<connectionStrings>
<add name="Database1Entities"
connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=moja_baza.database.windows.net,1433;Initial Catalog=MojaBaza_db;Persist Security Info=True;User ID=MojaBaza@MojaBaza;Password=ZXC;App=EntityFramework&quot;" providerName="System.Data.EntityClient"
xdt:Transform="SetAttributes(connectionString)"
xdt:Locator="Match(name)"
/>
<add name="DefaultConnection"
connectionString="Data Source=MojaBaza.database.windows.net,1433;Initial Catalog=MojaBaza_db;Persist Security Info=True;User ID=MojaBaza@MojaBaza;Password=ZXC"
xdt:Transform="SetAttributes(connectionString)"
xdt:Locator="Match(name)"
/>
</connectionStrings>

<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" /></system.web>

</configuration>

Podpowiedzi:

1. Jeżeli chcesz podejrzeć zmiany, to kliknij prawym przyciskiem myszy na pliku Web.Release.config i wybierz z menu: "Preview Transform"

2. Jeżeli w haśle używasz znaków: < lub > to w pliku konfiguracyjnym używaj ich html-owych odpowiedników: &lt; oraz &gt;

  • Odpowiedział
  • @ | 03.07.2015
  • TRENER ALTKOM AKADEMII