2013-07-29 14 views
7

Posiadamy bazę danych programistycznych i bazę danych produkcji. To, co próbuję zapobiec, to zmienić:Łańcuchy połączeń Live vs Development

connectionString="Data Source=server;Initial Catalog=test; 
connectionString="Data Source=server;Initial Catalog=live; 

Mamy dwa miejsca, w których rozmieszczamy witrynę. Jeden do testowania i jeden do live.

Czy istnieje prosty sposób, aby uniemożliwić nam zmianę ciągu połączenia za każdym razem, gdy chcemy go przesłać do przetestowania lub na żywo?

Używamy serwera fundacji zespołu, nie mam pojęcia, jak skonfigurować serwer kompilacji lub definicje kompilacji, więc szukasz czegoś prostego, jeśli coś jest.

+0

Czy znajdują się one w pliku web.config? http://msdn.microsoft.com/en-us/library/dd465326.aspx – cadrell0

+0

Używam do tego powolnego geparda i czynię cuda. Zobacz tutaj: http: //visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 – Icarus

+0

Najpierw zaadresuję fakt, że potrzebujesz serwera kompilacji: http://stackoverflow.com/questions/616149/how -I-why-do-i-set-up-ac-sharp-build-machine, gdy to zrobisz, możesz odpowiedzieć na swoje pytanie na wiele sposobów. –

Odpowiedz

6

Jeśli tworzysz aplikację ASP.NET, możesz użyć web.config transforms, aby łatwo określić, co będzie się różnić między poszczególnymi środowiskami. Proces budowania wygeneruje odpowiednie web.config dla dowolnego środowiska, na które kierujesz reklamy.

Jeśli budowania aplikacji na pulpicie, że patrzę w Slow Cheetah który pozwala korzystać z tego samego web.config przekształcić funkcji na dowolnym pliku xml chcesz, włącznie z app.config. Wykorzystaliśmy to w wielu projektach w mojej firmie, aby usprawnić proces wdrażania między różnymi środowiskami.

+0

Konfiguruję oddzielne pliki Web.Debug.config i Web.Release.config z różnicami w łańcuchach połączeń. Ale kiedy zmienię go z debugowania/wydania, wydaje mi się, że nadal pozostawiam oryginalny web.config z moją wersją na żywo.A kiedy uruchomię aplikację z debugowaniem/wydaniem, używa wersji na żywo. czego mi brakuje? –

+0

@JamesWilson Jeśli używasz debugera Visual Studio, wierzę, że zawsze użyje domyślnego 'web.config' bez żadnej transformacji. Zastosuje transformację tylko po uruchomieniu jej. –

3

Możesz użyć web.config.release, aby wspomnieć o swoich konfiguracjach trybu zwolnienia. Są one częścią VS2010 i nowszych. Możesz uzyskać bardzo dobre spojrzenie na Scott Hanselman articlehere.

Należy zwrócić uwagę, że transformacja z debugowania do wydania będzie miała miejsce zawsze, gdy użytkownik zostanie publish your web site before deploying.

+0

Ahh, więc jedynym sposobem, aby zmiany odniosły skutek, jest informacja publiczna? Teraz budujemy, a następnie kopiujemy te pliki do folderów dev/live. –

+0

Tak, musisz je opublikować. – Ehsan

1

Znajdź dobry samouczek do tworzenia kompilacji Continuous Integration. Nowsze wersje TFS radzą sobie z tym naprawdę dobrze.

Jest dużo do opanowania, ale warte wysiłku. Wypróbuj artykuły MSDN, przejdź do wszystkich domyślnych opcji i nie będzie tak źle.

Włączyć i uruchomić CI, a będziesz wiedział, co zrobić z tymi transformacjami web.config (które rozwiążą twój natychmiastowy problem). Ale przechodząc przez proces konfigurowania buildów, wdrożenie jest o wiele łatwiejsze.

+0

Zgadzam się, że będzie to ścieżka, którą mam nadzieję, mam nadzieję, niedługo później. Czytanie tego, co oferuje, sprawia, że ​​chcę to zrobić teraz, po prostu nie mogę dotrzymać terminu i tego. Potrzebuję teraz taniego i brudnego, a potem dobrego rozwiązania. ;) –

+0

Och, znam to uczucie! Powodzenia z tym. – evilbhonda