Ich probiere ASP.NET 5 und alle seine neuen Funktionen auf VS 2015 Enterprise RC aus. Um eine reibungslose End-to-End-Bereitstellung zu gewährleisten, versuche ich dann, die Anwendung über die VS Publish-Funktion auf einem privaten Nicht-Azure-Server bereitzustellen.
Ich verpasse jedoch ein sehr wichtiges Feature: die Möglichkeit, auf einem Nicht-Azure-Server zu veröffentlichen.
In früheren Versionen von Visual Studio (ich verwende VS 2013) sind die benutzerdefinierten Optionen vorhanden.
Ich habe versucht, an den Projekteigenschaften zu basteln, aber nichts darüber, wie ich meine ASP.NET 5-Anwendung auf einem benutzerdefinierten Server bereitstellen kann. Irgendwelche Ideen?
Es ist machbar (schließlich verwendet das Veröffentlichen auf Azure-Websites intern auch WebDeploy), aber es ist im Moment ziemlich schwierig und erfordert, dass Sie einige Dinge optimieren. Hier ist, was Sie tun können (für VS 2015 CTP6):
Asp.net vnext hat eine etwas andere Verzeichnisstruktur als eine normale Asp.net App. Es gibt zwei Hauptverzeichnisse: approot
und wwwroot
(wenn Sie die Anwendung auf lokales Dateisystem bereitstellen, können Sie sie durchsuchen). Wir möchten diese beiden Verzeichnisse bereitstellen, aber der IIS-Websitepfad muss auf wwwroot
dir verweisen. Dieses Problem scheint in Web Deploy 3.6 , aber ich werde nur manuell damit umgehen. Damit dies funktioniert, können Sie zwei Websites / Anwendungen in IIS erstellen:
mysite-deploy
nennen. wwwroot
dir verweist. Ich werde es einfach mysite
nennen. YourprojectDir\Properties\PublishProfiles
mysite.pubxml
) Fügen Sie den folgenden Inhalt in Ihre pubxml ein:
%Vor%mysite-deploy
) zu setzen. Web Publish Activity
. Out-of-the-Box wird die Veröffentlichung wahrscheinlich fehlschlagen. Jetzt wird es schwierig:)
Zuerst habe ich diesen Fehler:
%Vor%Versuchen wir das zu beheben.
Öffnen Sie das Fenster Publish
erneut und prüfen Sie die Option Publish using Powershell script
auf der Registerkarte Settings
.
Versuch es noch einmal.
Wenn Sie einen Fehler erhalten: ERROR_CERTIFICATE_VALIDATION_FAILED
, bedeutet dies, dass das SSL-Zertifikat IIS Management Service
auf Ihrem Zielcomputer von Ihrem Computer nicht als vertrauenswürdig eingestuft wird. Sie können versuchen, das Zertifikat herunterzuladen, es dem vertrauenswürdigen Zertifikatspeicher hinzuzufügen, oder Sie können die Zertifikatsprüfung vollständig deaktivieren.
Im letzteren Fall müssen Sie publish-module.psm1
unter C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts.0.0-pre\publish-module.psm1
bearbeiten. Finde das Fragment:
Und füge folgendes hinzu:
%Vor% Überprüfen Sie die genaue Befehlszeile, die aufgerufen wird - in Web Publish Activity Window
sollte eine Zeile protokolliert werden, beginnend mit Calling msdeploy with the command:
. Suchen Sie nach ComputerName=
. Wenn es so aussieht: ComputerName='https://https://myhost:8172/msdeploy.axd'
/ msdeploy.axd ' , then you should change
Server field in Publish profile
Verbindung tab to:
myhost: 8172 . That's because the powershell script automatically adds
https: //%Co_de%/msdeploy.axd'.
Gehe wieder zu and
und finde die Zeile:
Dies scheint ein Feature von Web Deploy 3.6 zu sein , aber es scheint, dass die Server-Seite es auch unterstützen muss. Um es zu deaktivieren, einfach diese Zeile auskommentieren. Warnung: Diese Änderung kann Auswirkungen auf die Powershell-Bereitstellung auf Azure-Websites haben .
Jetzt, da Ihre Site bereitgestellt wird, gibt es noch eine weitere Sache. Wir wollten das Verzeichnis C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts.0.0-pre\publish-module.psm1
und approot
bereitstellen, und stattdessen wird nur der Inhalt des Verzeichnisses wwwroot
bereitgestellt. Um das zu beheben, müssen wir noch einmal wwwroot
bearbeiten.
Suchen Sie die Zeile, die besagt:
%Vor%Und danach fügen Sie eine neue Zeile hinzu:
%Vor% Damit wird der veröffentlichte Ordner zum übergeordneten Element von C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts.0.0-pre\publish-module.psm1
, was genau das ist, was wir brauchen. Bevor Sie die Veröffentlichung erneut starten, sollten Sie das Verzeichnis Ihrer Site auf dem Server löschen. Die veröffentlichte Verzeichnisstruktur wird jetzt anders aussehen.
Zu diesem Zeitpunkt sollte die Site bereitgestellt und auf dem Server verfügbar sein. Auf der Serverseite sollten Sie zwei Verzeichnisse sehen: wwwroot
und approot
und vielleicht einige Skriptdateien.
Alle serverseitigen Fehler müssen Sie selbst debuggen.
Tags und Links asp.net-mvc c# visual-studio visual-studio-2015 asp.net-mvc-5