.net 从Visual Studio 2015发布-允许不受信任的证书

.net 从Visual Studio 2015发布-允许不受信任的证书,.net,ssl,visual-studio-2015,publish,asp.net-core,.net,Ssl,Visual Studio 2015,Publish,Asp.net Core,我将从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我已从服务器导入发布配置文件。连接验证成功,但发布项目时出现以下错误: 错误\u证书\u验证\u失败 使用指定的端口连接到远程计算机(“XXXXXXXXX”) 进程(“Web管理服务”),但无法验证服务器的 证明书如果您信任服务器,请再次连接并允许 不受信任的证书 发布设置中没有允许不受信任证书的选项 当前工具中尚不支持允许不受信任证书的选项。希望很快就能更新。但是,您可以手动设置它 在文本编辑器中打开/Prop

我将从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我已从服务器导入发布配置文件。连接验证成功,但发布项目时出现以下错误:

错误\u证书\u验证\u失败

使用指定的端口连接到远程计算机(“XXXXXXXXX”) 进程(“Web管理服务”),但无法验证服务器的 证明书如果您信任服务器,请再次连接并允许 不受信任的证书


发布设置中没有允许不受信任证书的选项

当前工具中尚不支持允许不受信任证书的选项。希望很快就能更新。但是,您可以手动设置它

  • 在文本编辑器中打开/Properties/PublishProfiles内的发布配置文件文件(
    .pubxml
  • 元素中,将AllowUntrustedCertificate设置为True(
    .ps1
    文件中的


    作为旁注,您还可以通过在本地“信任”服务器的证书来绕过此问题。

    对于dot net core 1.0,您必须添加标记

     <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
    
    True
    

    在.pubxml文件中发布配置文件的步骤更新

    请注意,当在VS2015或VS2017社区上部署.net核心应用程序到远程IIS服务器时,请使用以下命令

    <UsePowerShell>True</UsePowerShell> 
    
    True
    
    不是

    False
    
    发现部署已成功完成,但在我将标记更改为true之前,未将任何文件复制到服务器


    我希望这对某人有所帮助。

    对我来说,解决方案在发布配置文件xml中占用了4行

    <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
    <UseMsDeployExe>true</UseMsDeployExe>
    <UserName>myuser</UserName>
    <Password>mypass</Password>
    
    True
    真的
    我的用户
    我的通行证
    
    UseMsDeployExe
    将错误更改为忽略证书,但不验证用户,因此需要用户和密码(部署到的机器)

    powershell脚本中不需要任何更改。

    我有
    True
    ,但它仍因证书错误而失败

    • 我在“设置”对话框中重新输入了密码,但仍然失败
    • 单击“验证连接”后,它开始工作

    注意

    • VS 2017(15.2)
    • 我的密码最近更改了
    • 作为测试,输入了错误的密码,我得到了证书错误,因此证书错误显然不仅仅是关于不可信的证书

      • 另一种解决方案

        我在远程IIS上创建了发布设置,并在Visual Studio 2017(15.2)中导入了它们。 之后,我更改了URL以指定sitename,因为IIS用户只能访问特定站点(感谢answer on SO)。 我已通过用户界面输入凭据,无需在配置文件中存储密码

        我的个人资料看起来像:

        <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>
        
        MSDeploy
        释放
        任何CPU
        https://some.site.com:443/
        真的
        假的
        netcoreapp1.1
        eecf975e-f2e6-440f-bfd6-a0a63c25e3c3
        https://url.toourserver.com:8172/msdeploy.axd?site=some.site.com
        some.site.com
        真的
        WMSVC
        真的
        伊苏尔纳姆
        真的
        真的
        
        由于自签名证书在我的计算机上不受信任,因此需要

        使用此配置文件,将根据IIS中的设置进行备份,此过程完成后,网站将更新并在我的浏览器中打开:-)


        虽然这里的所有其他答案也使它起到了作用,但我认为以这种方式分享它会很好,因为它只涉及一些更改(AllowUntrustedCertificate),并且不存储普通密码。

        导入或创建配置文件后,单击“配置”,然后验证连接。输入密码并完成设置。现在部署。

        另一个解决方案


        我在VS2019中部署Azure Web作业时遇到了同样的问题。查看我的答案了解更多详细信息。

        对于VS 2019中的dotnet 3.1.0,只需进入“编辑”配置文件->验证连接->接受证书并完成即可。

        谢谢您,先生。它解决了我原来的问题,但现在我有另一个错误:error\u USER\u UNAUTHORIZED。Web部署任务失败。(已使用Web管理服务连接到远程计算机(XXXX),但无法授权。)凭据是正确的,我相信这是权限问题。你能给我一些关于如何解决新错误的见解吗?用户是服务器的管理员吗?是的。用户是服务器的管理员。我担心变量太多,很难将其缩小到特定的范围。通常,如果用户是管理员,“它很有效”。我建议你再问一个问题。尽可能多地提供详细信息,也许有更熟悉该错误的人可以插话帮助你。检查一下。向下滚动到底部,确保你不会错过“常见问题疑难解答”部分。你能链接到一些关于“信任”的信息吗"本地服务器?这里似乎有一个矛盾。你说首先要将标志设置为true,然后说除非标志为false,否则不会复制任何内容。你能澄清一下吗?感谢@paqogomez的观察。请使用true。我评论中的最后一句话是一个拼写错误。再次感谢这是我在数千年后使用的版本搜索并尝试。在VS 2017.2中,这是唯一对我有效的方法。在使用这一有效方法后,我找到了一种不将密码以明文形式存储在配置文件xml中的方法,请参阅:使用web api 2。无需在profile.xml中存储密码。UseMsDeployExe是密钥。我更喜欢在发布时在窗口提示中键入它。Thanks。我在这个问题上花了几天时间,这是我找到的唯一解决问题的方法。只是来发布相同的解决方案。打开“发布设置”对话框,单击“验证连接”重新验证连接,重新保存配置文件,然后再次单击“部署”-这使我每次都能通过证书颁发,但我没有
        <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>