自移至VS 2019后无法发布

MyD*_*ons 5 webdeploy visual-studio-2019

我最近卸载了VS 2017并安装了VS 2019。

当我通过Web Deploy发布网站时,如果失败并显示2条错误消息

由于未将对象引用设置为对象实例的错误,因此无法加载发布证书对话框。我的网站

Web部署任务失败。(已使用指定的过程(“ Web管理服务”)连接到远程计算机(“ example.com”),但无法验证服务器的证书。如果您信任服务器,请再次连接并允许不受信任的证书。有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED。)

我对如何解决这个问题一无所知...

编辑

根据评论,存在一个相同的问题,但该问题与Azure有关。我没有连接到任何与Azure相关的内容。我并不是说这使我的问题变得独特,更多的是我不了解原因/解决方案是否相同。连接时从Visual Studio部署到Azure失败

MyD*_*ons 17

如果您信任服务器,那么您可以通过直接编辑发布文件来忽略警告/错误

/sf/answers/2356407931/

  1. 在文本编辑器中打开 /Properties/PublishProfiles 中的发布配置文件 (.pubxml)
  2. 在 PropertyGroup 元素中,将 AllowUntrustedCertificate 设置为 True (AllowUntrustedCertificate> True /AllowUntrustedCertificate>) 或在它不存在时添加它
  3. 将 UsePowerShell 设置为 False (False)。

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

现在我们可以按照https://developercommunity.visualstudio.com/content/problem/484286/publish-fails-to-iis-using-msdeploy-webdeploy.html上的建议并实际添加以下2个条目

<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
Run Code Online (Sandbox Code Playgroud)

应该指出的是,有些人报告说您只需要使用这两个中的一个:

<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
Run Code Online (Sandbox Code Playgroud)

所以,pubxmlXML 文件的开头现在看起来像

<?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 />
… 
… 
Run Code Online (Sandbox Code Playgroud)


小智 7

我知道这已经过时了,但我确实找到了一个适合我的不同解决方案(在尝试创建/上传证书之后;重置发布配置文件等)

如果您的项目中安装了 nuget 包 MSBuild.Microsoft.VisualStudio.Web.targets,那么它很旧,这就是破坏它的原因。删除该包,您的发布就可以工作了。只要您的服务器是可信的,就无需在 pubxml 中添加AllowUntrusted 平面。(*即蔚蓝。)


小智 6

在您的 /Properties/PublishProfiles/xxxxxx.Settings.pubxml 文件中,添加以下两行

<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
Run Code Online (Sandbox Code Playgroud)