Publikacja strony z Microsoft Azure

0

Hej, jeszcze nigdy wcześniej nie wrzucałem strony w WWW.

Dzisiaj, po ukończeniu swojej web aplikacji w Visual Studio 2017 skorzystałem z narzędzia publikacji w Microsoft Azure na darmowym koncie.

Wg ostatniego raportu publikacja nastąpiła pomyślnie (ostatni update):

Web App was published successfully (link)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

Niestety po uruchomieniu linku okno aplikacji jest puste. Jedynie widnieje jeden błąd w konsoli:

Kodowanie znaków dokumentu czystotekstowego nie zostało zadeklarowane. Podczas wyświetlania tego dokumentu w niektórych konfiguracjach przeglądarki niektóre znaki spoza zakresu US-ASCII (o ile występują) mogą wyglądać nieprawidłowo. Kodowanie znaków pliku musi być zadeklarowane w protokole przesyłania, albo plik musi używać znacznika kolejności bajtów jako sygnatury kodowania.

Nie rozumiem czemu, bo mam w _Layout.cshtml linię:

<meta name="viewport" content="width=device-width" charset="UTF-8">

A inspektor HTML pokazuje puste kontenery dla <html>, <body>, <pre>

Co mogło pójść nie tak? Nie wiem od czego zacząć.

P.S. publikacja strony była wg instrukcji z książki "asp-net-core-mvc-2-zaawansowane-programowanie-wydanie-vii-adam-freeman"

0

plik musi używać znacznika kolejności bajtów jako sygnatury kodowania

https://pl.wikipedia.org/wiki/BOM_(informatyka)

W edytorach tekstu, np. w Notepad++ możesz to sobie ustawić.

0

@UPDATE - udało mi się uruchomić aplikację w hosting IIS, mam podobną sytuację, puste okno i ten sam komunikat

0

@UPDATE2 - udało mi się uruchomić stronę. Problemem był wyjątek związany z jednym z widoków.

Jednak pojawił się kolejny problem. Kiedy korzystam z funkcji Publish w Visual Studio 2017, w Configure -> Settings konfiguruję bazy jak na obrazku poniżej:
title

Mimo wszystko, po publikacji dostaję info, że No databases found in the project.

korzystam także z poleceń konsoli, z takim samym wynikiem:

dotnet ef database update --context ApplicationDbContext
dotnet ef database update --context AppIdentityDbContext

Stringi połączeń biorę z Azure z Show database connection strings wpisując login i hasło.

Nie wiem co robię źle. Wszystko działa dobrze w wersji deweloperskiej. Obecnie w czasie populacji tabeli identity:

{
       private const string adminUser = "****";
       private const string adminPassword = "****";
       public static async Task EnsurePopulated(UserManager<IdentityUser> userManager)
       {
           IdentityUser user = await userManager.FindByIdAsync(adminUser);
           if (user == null)
           {
               user = new IdentityUser("Admin");
               await userManager.CreateAsync(user, adminPassword);
           }
       }
   }

Dostaję błąd:

AggregateException: One or more errors occurred. (Invalid object name 'AspNetUsers'.)

System.Threading.Tasks.Task.ThrowIfExceptional(bool includeTaskCanceledExceptions)
SqlException: Invalid object name 'AspNetUsers'.

System.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__108_0(Task<SqlDataReader> result)
1

ROZWIĄZANIE:

Jako że nie udało mi się wykonać migracji bazy Identity na platformę Azure, byłem zmuszony posłużyć się alternatywnym rozwiązaniem które znalazłem na SO:
https://stackoverflow.com/questions/38040976/invalid-object-name-dbo-aspnetusers-in-asp-net-mvc-5-entity-framework

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.