2017-07-25 30 views
12

Próbowałem dodać parametr DefaultConnection z pliku appsettings.json do ustawień aplikacji Azure, ale usługa Azure nie zastąpi ciągu połączenia.Ustawienia aplikacji Azure nie zastępują moich wartości pliku appsettings.json.

enter image description here

enter image description here

Każdy artykuł lub blogu znajdę stwierdza, że ​​wszyscy powinni muszę zrobić, to dodać nazwę ciąg połączenia, jak stwierdza się w pliku appsettings.json i Azure powinien zrobić resztę (np. https://tehremo.wordpress.com/2016/10/07/override-connection-strings-app-settings-in-asp-net-core-and-azure-app-service/), jednak po opublikowaniu aplikacji używa mojego lokalnego połączenia.

plik My Startup.cs wygląda następująco:

enter image description here enter image description here

UWAGA: Ja publikacji przy użyciu VSTS ciągłą dostawę z "Deploy Azure App Usługa" zadanie uwolnienia.

+0

Czy możesz dołączyć plik Startup.cs? – rolspace

Odpowiedz

17

prostu miałem podobny problem (problem był z PostgreSQL typu ciąg połączenia, musiałem go zmienić na zwyczaju), a teraz pracuje dla mnie, więc są to kawałki:

  1. To jest mój plik appsettings.json. Mam wartość dla zestawu "Psql" w moim appsettings.Development.json, ale w appsettings.json jest pusta. enter image description here
  2. Są to ustawienia ustawione w portalu Azure. Zwróć uwagę, że istnieją dwa sposoby nadpisania ciągu połączenia. enter image description here
  3. To jest część mojego pliku Startup.cs. Zwróć uwagę na kolejność w jaki sposób ustawienia są stosowane w konstruktorze Startup oraz sposób, w jaki otrzymuję ciąg połączenia w metodzie ConfigureServices (GetConnectionString jest standardową metodą rozszerzenia). enter image description here

Dodatkowe informacje od dołu moje komentarze:

Azure GUI (ciągi połączeń, ustawienia aplikacji) używa zmiennych środowiskowych wewnętrznie, więc appsettings.json pozostanie taka sama.

Jeśli istnieje potrzeba wartości danej appsettings.json do nadpisane podczas VSTS zwolnić aktywność (zanim zostanie on opublikowany na Azure), Colin ALM Corner Budowanie & Narzędzia wydaniu może być używany. Oto linki do Colin's ALM Corner Build & Release Tools i tutorial.

+0

Witam. Próbowałem tego, co sugerowałeś bez radości. Dodałem mój kod statystyk do mojego pytania – psycho

+0

Hej, jak rozumiesz, że ciąg połączenia nie został zmieniony, błąd podczas uruchamiania witryny? Czy próbowałeś użyć ustawienia aplikacji zamiast ciągu połączenia ("inny sposób" na drugim obrazie)? Możesz także spróbować użyć innej nazwy z "DefaultConnection". A propos, appsettings.json ma być opcjonalny, czy zrobiono to celowo? – pasul

+0

Wiem, że odnosi się on do niewłaściwego ciągu połączenia, ponieważ mam logi, które informują mnie, że połączenie z bazą danych jest nieprawidłowe podczas logowania, a także widzę, że ciąg połączenia jest niepoprawny, gdy przejdę do appsettings.json w Kudu. Zmieniam opcjonalny parametr na false i nadal nie mam radości. – psycho

1

Dzięki @pasul, twoja pomoc została doceniona i pomogła mi znaleźć alternatywne rozwiązanie. Aby wdrożyć za pomocą zadania VSTS i zastąpić ustawienia aplikacji, musisz dodać zmienne do zadania zwolnienia i przekazać do zadania plik json, którego dotyczy zmienna podstawa.

Podczas wykonywania zadania "Wdróż serwis aplikacji Azure" powinieneś zobaczyć sekcję "Transformacje plików i Zmienna zmienna". Tutaj podasz ścieżkę do pliku json, który chcesz zamienić wartości zmiennych.

enter image description here

Następnie trzeba kliknąć na przycisk Opcje w środowisku uwalniania. Pojawi się opcja konfigurowania zmiennych w menu podręcznym.

enter image description here

Stąd można dodać właściwość json chcesz zmodyfikować jako zmienna. W moim przypadku ciąg połączenia. Który będzie wyglądać następująco:

enter image description here

"ConnectionStrings.DefaultConnection"

Następnie wystarczy umieścić w wartości ciągu połączenia. VSTS następnie wymieni te wartości podczas wdrażania.