Ich habe eine App auf ASP.NET 5 (CoreCLR) und versuche, sie in Microsoft Azure zu veröffentlichen. Ich benutze free Web App
(nicht VDS)
Ich veröffentliche App mit Visual Studio 2015 Publish->Microsoft Azure
und folgende diese Anweisungen .
Aber wenn ich es veröffentliche und versuche, es zu öffnen, sehe ich nur das ununterbrochene Laden einer leeren Seite. Ich aktiviere die Protokollierung und zeige das Protokoll (stdout.log) von Azure an und es gab nur:
%Vor%ausführbares Programm oder Batch-Datei.
Ich habe auch versucht, Continiusly publishing
mit git zu machen. Während des Push-Vorgangs hat es mit dem Wiederherstellen von Paketen begonnen und ist mit dem Fehler no disk space available
fehlgeschlagen.
Gibt es eine Möglichkeit, die ASP.NET 5 App in der Azure Web App zu veröffentlichen?
Aber wenn ich es veröffentliche und versuche, es zu öffnen, sehe ich nur das ununterbrochene Laden einer leeren Seite.
Dies passiert, wenn unsere App die Laufzeitumgebung ( dnx.exe
) nicht mit der Anwendung veröffentlichen kann.
Es gibt mehrere Möglichkeiten, ASP.NET Core rc1-Apps in einer Azure-Webanwendung zu veröffentlichen. Dazu gehören die kontinuierliche Bereitstellung mit Git und die Veröffentlichung mit Visual Studio. Veröffentlichen Sie den Inhalt Ihres Repositorys für spezifische Hilfe.
Das Beispiel ist eine ASP.NET Core rc1-App, die über die kontinuierliche GitHub-Bereitstellung in einer Azure-Webanwendung bereitgestellt wird. Dies sind die wichtigen Dateien.
%Vor%app / wwwroot / web.config
Fügen Sie HttpPlatformHandler
hinzu. Konfigurieren Sie es so, dass alle Anforderungen an einen DNX-Prozess weitergeleitet werden. Sagen Sie der Azure Web App, dass sie DNX verwenden soll.
app / project.json
Fügen Sie eine Abhängigkeit zum Kestrel-Server hinzu. Setzen Sie einen web
-Befehl, der Kestrel startet. Verwenden Sie dnx451
als Zielframework. Siehe unten für die zusätzliche Arbeit, um dnxCore50
zu targetieren.
app / Startup.cs
Fügen Sie die Methode Configure
hinzu. Dieser fügt einen extrem einfachen Antworthandler hinzu.
.deployment (optional)
Wenn sich Ihre App nicht im Stammverzeichnis der Repositorys befindet, teilen Sie der Azure Web App mit, welches Verzeichnis die App enthält.
%Vor%global.json (optional)
Wenn Sie .NET Core als Ziel verwenden möchten, teilen Sie Azure mit, dass wir das Ziel erreichen möchten. Nach dem Hinzufügen dieser Datei können wir entweder den Eintrag dnx451
in unserer project.json mit dnxCore50
ersetzen oder ergänzen.
Erstens, ja, Sie können problemlos ASP.Net 5-Kern-Apps auf Azure ausführen, aber es gibt einige Fehler.
Ich weiß nicht, warum es nicht funktioniert, wenn Sie aus Visual Studio selbst veröffentlichen (warum gibt er eine Antwort auf, von der ich höre, dass Sie fragen ...), aber hier sind einige Dinge einen Blick darauf werfen;
global.json
-Datei an. Es sollte nicht wichtig sein, wenn Sie aus Visual Studio veröffentlichen, aber es wird nicht schaden, dies richtig einzustellen. Sie können so etwas tun: .
%Vor%In Bezug auf Continuous Publishing - das ist ein bekanntes Problem mit kostenlosen und freigegebenen Websites und einem, das mich ein paar Stunden gekostet hat. Im Grunde, wenn Sie nach diesem Mechanismus bereitstellen und Sie corecelr angeben, wird die gesamte Laufzeit von Nuget neu installiert und das dauert fast 1 GB (die Erlaubnis für freie und freigegebene Sites). Fügen Sie ein paar NPM-Pakete hinzu und Sie sind über dem Limit und, hey presto, können Sie nicht bereitstellen. @shanselman hat kürzlich in einem seiner Podcasts darüber gesprochen. Es sind nicht die Laufzeit-Binärdateien, die den gesamten Speicherplatz beanspruchen, sondern weil wir im Build-Modus sind, werden auch alle Dokumentations-XML-Dateien installiert, da Nuget nicht weiß, dass Sie sich nicht in einer Entwicklungsumgebung befinden, und sie sind riesig. Im Augenblick ist die einfachste Antwort, wenn Sie fortlaufendes Publishing auf einer freien oder freigegebenen Site verwenden möchten, auch die vollständige Laufzeit in Ihre project.json aufzunehmen und Ihre% co_de festzulegen %, um die vollständige CLR anstelle von corclr zu verwenden. Einfach sehr frustrierend.
Ich hatte das gleiche Problem. Diese Antwort hat das Problem behoben.
Beim Erstellen eines neuen Projekts mit der Kernvorlage von ASP.net war die Datei global.json
Teil meines API-Projekts, wurde aber auch im Ordner Solution Items referenziert. Bei der Veröffentlichung in einer Azure-API-App wurden zwei global.json
-Dateien bereitgestellt:
/approot/global.json
/approot/src/MyAPI/global.json
Ich habe die Datei global.json
aus dem Projektordner in den Stammordner der Lösung verschoben und eine Referenz wieder in den Ordner Solution Items eingefügt.
Bei der Bereitstellung wurde nur die Datei /approot/global.json
bereitgestellt, um das Problem zu beheben.
Tags und Links azure c# asp.net-core azure-web-sites