2014-02-25 7 views
12

Wir verwenden Azure Web Services (nicht Web-Sites) und im Inneren ASP.Net MVC 5.1-Anwendung ausführen.Precompile während für Azure Web Service veröffentlicht

Wenn ich Web-Seiten durch Web-deploy veröffentlichen, habe ich eine Option "Precompile während der Veröffentlichung":

enter image description here

Wenn ich zu Azure Web Services veröffentlichen, kann ich diese Option nicht finden irgendwo. Irgendwelche Zeiger?

Die Idee besteht darin, Ansichten vorab zu kompilieren, so dass der erste Treffer in einer Ansicht nicht durch Zeitkompensierung durch schnelles Kompilieren beeinträchtigt wird.

Ich habe auf Razor Generator geschaut, aber es entspricht nicht unseren Bedürfnissen. Ich habe nur wenige andere Optionen gesehen, aber die Zusammenstellung von Ansichten im Publishing-Stadium ist für unseren Fall am sinnvollsten.

UPD: Gerade für meine Referenz, ich habe versucht, was David Ebbo suggested und it did not work.

+0

Können Sie versuchen, über DropBox zu veröffentlichen? –

+0

@AkashKava Sie können Web-Services nicht über Dropbox veröffentlichen. Dropbox ist nur für Web-Sites die sich von Web-Services unterscheiden – trailmax

+0

Mr. Downwoter, bitte erkläre dich selbst. Was ist falsch an der Frage? – trailmax

Antwort

7

Der Aufruf des Compilers %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -m /LM/W3SVC/1273337584/ROOT von der Befehlszeile auf dem Azure-Server verursacht Kompilierung. Das temporäre ASP.Net-Stammverzeichnis enthält ein Verzeichnis, wodurch die Größe und Anzahl der enthaltenen Dateien erhöht wird. Die Site wird nach der Kompilierung neu gestartet. Die Leistung der ersten Seite scheint dann viel besser zu sein.

Wenn ich dies in einem Startskript ausführen, funktioniert es nicht, da die Website nicht verfügbar ist. Ich nehme an, IIS ist nicht gestartet. Wenn Sie so etwas machen, sehen Sie Azure: How to execute a startup task delayed?

Die Site-ID scheint sich für verschiedene Bereitstellungen nicht zu ändern. Ich denke, könnte die Website-ID aus IIS und dann verwenden Sie es, wenn es das tut.

So sieht es aus. Gibt es elegantere Wege? Ich verstehe nicht, warum das Kompilieren und Bereitstellen von Ansichtsdateien so mühsam ist.

+0

Ich führe dies in einem Startskript aus, indem ich einfach warte, bis 'Get-Website' etwas zurückgibt. Dann weiß ich, dass der IIS-Konfigurator seine Sache gemacht hat. Ich bin nicht 100% sicher, wenn es hilft, aber ich stoppe auch IIS, während die Vorkompilierung läuft. –