我正在从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我已经从我的服务器导入了发布配置文件。连接验证成功,但是当我发布项目时出现以下错误:
ERROR_CERTIFICATE_VALIDATION_FAILED
使用指定的连接到远程计算机(“XXXXXXXXX”) 进程(“Web管理服务”),但无法验证服务器的 证书。如果您信任该服务器,请再次连接并允许 不受信任的证书。
在发布设置中不允许允许不受信任的证书。
答案 0 :(得分:85)
当前工具尚不支持允许不受信任证书的选项。希望这会很快得到更新。但是,您可以手动设置它。
.pubxml
)<PropertyGroup>
元素内,将AllowUntrustedCertificate设置为True(<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
)或如果不存在则添加<UsePowerShell>False</UsePowerShell>
)。 在撰写本文时,生成的powershell脚本忽略了可能是错误的 AllowUntrustedCertificate
属性,因此需要将其设置为False
。
如果.ps1
文件中update the module version,您可以使PowerShell工作。
作为旁注,你也可以通过&#34;信任&#34;来解决这个问题。本地服务器的证书。
答案 1 :(得分:28)
对于dot net core 1.0,您必须添加标记
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
在.pubxml文件中发布配置文件
答案 2 :(得分:10)
我有<UsePowerShell>True</UsePowerShell>
但它仍然因证书错误而失败。
注意强>
答案 3 :(得分:9)
对我来说,解决方案在发布配置文件xml中占用了4行。
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
UseMsDeployExe
更改错误以忽略证书,但不对用户进行身份验证,因此需要用户并传递(您正在部署的计算机)
powershell脚本不需要进行任何更改。
答案 4 :(得分:1)
<强>更新强>
在VS2015或VS2017社区部署.net核心应用程序到远程IIS服务器时,请稍等一点,请使用此
<UsePowerShell>True</UsePowerShell>
不
<UsePowerShell>False</UsePowerShell>
发现部署已成功完成,但在将标记更改为 true 之前,没有文件复制到服务器。
我希望这有助于某人。
答案 5 :(得分:0)
又一个解决方案
我在远程IIS上创建了发布设置,并在Visual Studio 2017(15.2)中导入了它们。 之后我更改了URL以指定网站名称,因为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)并且没有普通密码的存储。
答案 6 :(得分:0)
在导入或创建配置文件后,单击配置,然后验证连接。输入密码并完成设置。现在部署。
答案 7 :(得分:0)
还有另一种解决方案
在VS2019中部署Azure Web Jobs时遇到了同样的问题。查看我的答案here,了解更多详细信息。
答案 8 :(得分:0)
对于VS 2019中的dotnet 3.1.0,只需进入“编辑”配置文件->验证连接->接受证书并完成