Ich veröffentliche mein ASP.NET 5-MVC6-Projekt aus Visual Studio 2015. Ich habe das Veröffentlichungsprofil von meinem Server importiert. Verbindung wird erfolgreich validiert. Beim Veröffentlichen meines Projekts habe ich jedoch den folgenden Fehler:
ERROR_CERTIFICATE_VALIDATION_FAILED
Verbindung zum Remote-Computer ("XXXXXXXXX") mit dem angegebenen Prozess ("Web Management Service"), konnte jedoch nicht die .__ des Servers überprüfen. Zertifikat. Wenn Sie dem Server vertrauen, stellen Sie erneut eine Verbindung her, und erlauben Sie nicht vertrauenswürdige Zertifikate.
Es ist nicht möglich, nicht vertrauenswürdige Zertifikate in den Veröffentlichungseinstellungen zuzulassen.
Die Option zum Zulassen nicht vertrauenswürdiger Zertifikate wird im aktuellen Tooling noch nicht unterstützt. Hoffentlich wird dies sehr bald aktualisiert. Sie können es jedoch manuell einstellen.
.pubxml
) in/Properties/PublishProfiles in einem Texteditor<PropertyGroup>
auf True (<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
) oder fügen Sie es hinzu, wenn es nicht vorhanden ist <UsePowerShell>False</UsePowerShell>
).Zum Zeitpunkt des Schreibens ignoriert das generierte Powershell-Skript die AllowUntrustedCertificate
-Eigenschaft, die wahrscheinlich ein Fehler ist, daher muss sie auf False
gesetzt werden.
Sie können Powershell zum Laufen bringen, wenn Sie die Modulversion in der .ps1
-Datei aktualisieren.
Als Randbemerkung können Sie dieses Problem auch umgehen, indem Sie dem Zertifikat des Servers lokal vertrauen.
Für dot net core 1.0 müssen Sie das Tag hinzufügen
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
veröffentlichen von Profilen in Ihrer .pubxml-Datei
Für mich dauerte die Lösung 4 Zeilen in der XML-Datei des Veröffentlichungsprofils.
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
Die Variable UseMsDeployExe
ändert den Fehler, um das Zertifikat zu ignorieren, den Benutzer jedoch nicht zu authentifizieren. Daher ist es erforderlich, dass der Benutzer und der Benutzer den Computer übergeben, auf dem er bereitgestellt wird.
Im Powershell-Skript waren keine Änderungen erforderlich.
Ich hatte <UsePowerShell>True</UsePowerShell>
, aber der cert-Fehler schlug fehl.
Hinweis
Update
Eine kleine Bemerkung, wenn Sie eine .net-Core-App in der VS2015- oder VS2017-Community auf einem Remote-Server IIS bereitstellen, verwenden Sie diese Option
<UsePowerShell>True</UsePowerShell>
nicht
<UsePowerShell>False</UsePowerShell>
Es wurde festgestellt, dass die Bereitstellung als erfolgreich abgeschlossen wurde. Es wurden jedoch keine Dateien auf den Server kopiert, bis ich das Tag in true geändert habe.
Ich hoffe das hilft jemandem.
Noch eine andere Lösung
Ich habe auf der Remote-Seite IIS Veröffentlichungseinstellungen erstellt und diese in Visual Studio 2017 (15.2) importiert. Danach änderte ich die URL, um den Sitenamen anzugeben, da der IIS-Benutzer nur Zugriff auf die bestimmte Site hat (Danke an this answer on SO) . Ich habe die Anmeldeinformationen über die Benutzeroberfläche eingegeben und es ist nicht erforderlich, das Kennwort im Profil zu speichern.
Mein Profil sieht so aus:
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://some.site.com:443/</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishFramework>netcoreapp1.1</PublishFramework>
<ProjectGuid>eecf975e-f2e6-440f-bfd6-a0a63c25e3c3</ProjectGuid>
<MSDeployServiceURL>https://url.toourserver.com:8172/msdeploy.axd?site=some.site.com</MSDeployServiceURL>
<DeployIisAppPath>some.site.com</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>IISUserName</UserName>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<_SavePWD>True</_SavePWD>
<AllowUntrustedCertificate>
wurde benötigt, da das selbstsignierte Zertifikat auf meinem Computer nicht als vertrauenswürdig eingestuft wird.
Mit diesem Profil wird ein Backup gemäß den Einstellungen in IIS erstellt, die Site wird aktualisiert und in meinem Browser geöffnet, wenn der Vorgang abgeschlossen ist :-)
Obwohl alle anderen Antworten auch dazu geführt haben, dass es funktioniert hat, dachte ich, dass es nett wäre, auf diese Weise zu teilen, da es nur wenige Änderungen (AllowUntrustedCertificate) und keine Speicherung von Passwörtern erfordert.
Klicken Sie nach dem Importieren oder Erstellen eines Profils auf Konfigurieren und validieren Sie die Verbindung. Geben Sie das Passwort ein und beenden Sie das Setup. Jetzt bereitstellen.