2016-05-12 22 views
12

Czy istnieje sposób wstępnego kompilowania widoków MVC ASP.NET w aplikacji sieci Web Azure (szczególnie po opublikowaniu za pomocą narzędzia Zarządzanie wydaniem w systemie VSTS)?Prekompilacja widoków ASP.NET MVC w aplikacji sieci Web Azure

Po każdym uderzeniu o jeden raz strona bardzo szybko się wyświetla. Ale to pierwsze opóźnienie może być nie do przyjęcia dla użytkowników i nie ma sposobu, aby skrypt dotykał każdej strony.

Nie jestem pewien, czy muszę coś zmienić w procesach build/zwalniający VSTS (używam krok Visual Studio Build gromadzeniu i zadania Azure Web App release) lub jeśli trzeba uruchomić coś na przykład Azure Web App po wydaniu (lub czymś zupełnie innym).

Wygląda na to, że mogę znaleźć sposób, aby zadzwonić pod numer aspnet_compiler po opublikowaniu może być to, czego potrzebuję (i widziałem, że w odniesieniu do ról sieciowych w usługach w chmurze), ale nie mogę tego uruchomić.

Wywołanie

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 

za pośrednictwem konsoli w portalu Azure wykonuje dobrze (i wyszukuje błędy, jeśli takie istnieją), ale nie ma żadnego wpływu na czas uruchamiania - uderzenie widok po raz pierwszy nadal trwa długi czas.

Może to nie jest właściwy kierunek.

Spojrzałem na RazorGenerator (łącznie z pakietem .MSBuild nuget) i nie mogłem go uruchomić, ale naprawdę nie chciałam wprowadzać tylu zmian w projektach, aby uzyskać prekompilację w momencie premiery.

Zauważ też, że obecnie używam TFVC, a nie Git, w VSTS, więc integracja Kudu/Git (która wydaje się powodować prekompilację według niektórych artykułów) nie jest dla mnie dostępna, o ile mogę powiedzieć .

Inne pomysły?

+0

Zastanawiam się, czy uruchomienie testu wydajności internetowej opartego na chmurze na stronie po wydaniu zadania spowoduje pierwsze powolne trafienie w Twoje poglądy? – majita

Odpowiedz

15

Możesz dodać "/ p: PrecompileBeforePublish = true" argumentu "Visual Studio Build" krok: enter image description here

Następnie zadaniem będzie zadzwonić aspnet_compiler podczas procesu budowania i wygenerować prekompilowanego wyjścia do wdrożenia.

+1

Czy można użyć argumentu "PrecompileBeforePublish', gdy usługa aplikacji Azure jest publikowana bezpośrednio za pośrednictwem wywołania' msdeploy.exe'? –

+0

Interesujące. Powiedziano mi, że to nie działa. Ale tak właśnie jest. Cóż, niesamowicie. Dzięki! – Tim

+9

Spowoduje to utworzenie biblioteki dll na widok. Jeśli dodasz również/p: UseMerge = true/p: SingleAssemblyName = AppCode do argumentu będziesz miał tylko jedną bibliotekę dll, która jest szybsza do załadowania. –

0

W visual studio 2013+ wybierz Build-> Profiles. Wybierz profil, a następnie wybierz "Ustawienia". Pod "Konfiguracja" rozwiń "Opublikuj opcje publikowania", a następnie zaznacz opcję "Skompiluj podczas publikowania".

+0

Nie zapomnij też odznaczyć "Pozwól, aby możliwa była aktualizacja strony prekompilowanej". – Mik

Powiązane problemy