我从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我从我的服务器导入了发布配置文件。连接验证成功,但是当我发布我的项目时,我有以下错误:
ERROR_CERTIFICATE_VALIDATION_FAILED
使用指定的进程(“Web管理服务”)连接到远程计算机(“XXXXXXXXX”),但无法验证服务器的证书。如果您信任该服务器,请再次连接并允许不受信任的证书。
在发布设置中没有允许不受信任的证书的选项。
当前工具尚不支持允许不受信任的证书的选项。希望这会很快得到更新。但是,您可以手动设置它。
.pubxml
)<PropertyGroup>
元素内,将AllowUntrustedCertificate设置为True(<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
)或添加它(如果它不存在)<UsePowerShell>False</UsePowerShell>
)。在撰写本文时,生成的powershell脚本忽略了AllowUntrustedCertificate
属性,这可能是一个错误,因此需要将其设置为False
。
如果你在update the module version文件中使用.ps1
,你可以使PowerShell工作。
作为旁注,您还可以通过本地“信任”服务器的证书来解决此问题。
对于dot net core 1.0,您必须添加标记
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
在.pubxml文件中发布配置文件
对我来说,解决方案在发布配置文件xml中占用了4行。
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
UseMsDeployExe
更改错误以忽略证书,但不对用户进行身份验证,因此需要用户并传递(您正在部署的计算机)
powershell脚本不需要进行任何更改。
更新
在VS2015或VS2017社区部署.net核心应用程序到远程IIS服务器时,请稍微观察一下
<UsePowerShell>True</UsePowerShell>
不
<UsePowerShell>False</UsePowerShell>
发现部署成功完成但没有文件被复制到服务器,直到我将标记更改为true。
我希望这可以帮助别人。
导入或创建配置文件后,单击configure然后验证连接。输入密码并完成设置。现在部署。
又一个解决方案
我在远程IIS上创建了发布设置,并在Visual Studio 2017中导入它们(15.2)。之后我更改了URL以指定sitename,因为IIS用户只能访问特定站点(感谢this回答SO)。我已通过UI输入凭据,无需在配置文件中存储密码。
我的个人资料如下:
<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>
。
使用此配置文件,根据IIS中的设置进行备份,该过程完成后,站点将在我的浏览器中更新并打开:-)
虽然这里的所有其他答案也使它工作,我认为分享这种方式会很好,因为它只涉及一些更改(AllowUntrustedCertificate)并且没有普通密码的存储。