我正在从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我已经从服务器导入了发布配置文件。连接成功验证,但是在发布项目时出现以下错误:
ERROR_CERTIFICATE_VALIDATION_FAILED
使用指定的进程(“ Web管理服务”)连接到远程计算机(“ XXXXXXXXX”),但是无法验证服务器的证书。如果您信任服务器,请再次连接并允许不受信任的证书。
在发布设置中没有允许不信任证书的选项。
Answers:
当前工具尚不支持允许不受信任的证书的选项。希望它会很快更新。但是,您可以手动设置。
.pubxml
在文本编辑器中的/ Properties / PublishProfiles中打开发布配置文件()<PropertyGroup>
元素内,将AllowUntrustedCertificate设置为True(<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
)或添加如果不存在)<UsePowerShell>False</UsePowerShell>
)。在撰写本文时,生成的powershell脚本忽略了AllowUntrustedCertificate
可能是错误的属性,因此需要将其设置为False
。
如果更新.ps1
文件中的模块版本,则可以使Powershell正常工作。
作为附带说明,您还可以通过在本地“信任”服务器的证书来解决此问题。
对我来说,该解决方案在发布配置文件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为止。
我希望这可以帮助别人。
导入或创建配置文件后,单击配置,然后验证连接。输入密码并完成设置。现在部署。
另一个解决方案
我在远程IIS上创建了发布设置,并将其导入了Visual Studio 2017(15.2)中。在此之后,我改变了URL指定站点名称作为IIS用户只能访问特定的网站(感谢这个答案的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)并且不存储普通密码。
对于VS 2019中的dotnet 3.1.0,只需转到“编辑”配置文件->验证连接->接受证书并完成