我最近卸载了VS 2017,并安装了VS2019。
当我通过Web Deploy发布网站时,如果失败并显示2条错误消息
由于未将对象引用设置为对象实例的错误,因此无法加载发布证书对话框。 MyWebsite.Ui
Web部署任务失败。 (已使用指定的过程(“ Web管理服务”)连接到远程计算机(“ example.com”),但无法验证服务器的证书。如果您信任服务器,请再次连接并允许不受信任的证书。有关详细信息,请访问: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED。)
我对如何解决这个问题一无所知...
修改
根据评论,存在一个相同的问题,但该问题与Azure有关。我没有连接到任何与Azure相关的内容。我并不是说这使我的问题变得独特,更多的是我不了解原因/解决方案是否相同。 Deploying to Azure from Visual Studio fails when connecting
答案 0 :(得分:2)
我知道这是旧的,但我确实找到了一个对我有用的不同解决方案(在尝试创建/上传证书之后;重置发布配置文件等)
如果您的项目中安装了 nuget 包 MSBuild.Microsoft.VisualStudio.Web.targets,那么它已经过时了,这就是破坏它的原因。删除该包,您的发布将起作用。只要您的服务器是可信的,就无需在您的 pubxml 中添加 AllowUntrusted 平面。 (*即 Azure。)
答案 1 :(得分:0)
在您的/Properties/PublishProfiles/xxxxxx.Settings.pubxml文件中,添加以下两行
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
答案 2 :(得分:0)
如果您信任服务器,则可以简单地忽略警告/错误,而直接编辑发布文件
https://stackoverflow.com/a/33662970/3252861
- 在文本编辑器中的/ Properties / PublishProfiles中打开发布配置文件(.pubxml)
- 在PropertyGroup元素内,将AllowUntrustedCertificate设置为True(AllowUntrustedCertificate> True / AllowUntrustedCertificate>),或者将其添加(如果不存在)
- 将UsePowerShell设置为False(否)。
我没有提到第三点,所以我想我以前有过或者不需要它
现在,我们可以按照https://developercommunity.visualstudio.com/content/problem/484286/publish-fails-to-iis-using-msdeploy-webdeploy.html上的建议,将以下 2 条目实际添加到
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
因此,XML文件的开始现在看起来像
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<MSDeployServiceURL>domain</MSDeployServiceURL>
<DeployIisAppPath>name</DeployIisAppPath>
<RemoteSitePhysicalPath />
…
…
答案 3 :(得分:0)
我来自产品团队,如果服务器证书不受信任,我可以确认这是唯一需要设置的属性。
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
答案 4 :(得分:0)
验证您的代码是否有任何错误 /C#/ Razor 语法,有时错误不会显示在错误窗口中。
答案 5 :(得分:0)