自移至VS 2019后无法发布

时间:2019-05-26 06:21:21

标签: webdeploy visual-studio-2019

我最近卸载了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

6 个答案:

答案 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

  
      
  1. 在文本编辑器中的/ Properties / PublishProfiles中打开发布配置文件(.pubxml)
  2.   
  3. 在PropertyGroup元素内,将AllowUntrustedCertificate设置为True(AllowUntrustedCertificate> True / AllowUntrustedCertificate>),或者将其添加(如果不存在)
  4.   
  5. 将UsePowerShell设置为False(否)。
  6.   

我没有提到第三点,所以我想我以前有过或者不需要它

现在,我们可以按照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)

我正在使用 VS 2019

enter image description here

enter image description here

将下一行添加到 PropertyGroup 节点:

<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>

enter image description here