续订ClickOnce证书失败,即使它是针对.NET 4.0 Framework

时间:2014-06-23 00:27:48

标签: visual-studio-2010 certificate clickonce

在微软文章中明确指出"如果您使用的是Visual Studio 2010并且面向.NET 4.0,那么在任何情况下都应该没问题。" http://msdn.microsoft.com/en-us/library/ff369721.aspx

我有一个ClickOnce应用程序向公众发布了1年。它由Visual Studio 2010发布了十几次,并以.NET 4.0 Framework为目标,自动升级。一切正常,直到证书即将到期(1周内)。我刚刚从同一供应商那里带来了一个新的,并尝试使用Visual Studio 2010以新证书发布我的应用程序,并以.NET 4.0 Framework为目标。换句话说,除了新证书之外没有任何改变。

现在,如果我启动已安装的应用程序以触发自动升级,我会错误地启动错误窗口"应用程序无法启动。联系应用程序供应商"。 调试消息: ....     *激活C:\ Users \ xxxxx |导致例外。检测到以下失败消息:         +部署标识与订阅不匹配。

有趣的是,当我尝试将应用程序发布到我的生产网站服务器时,我收到了此错误。但是,如果我在开发网站服务器上尝试完全相同,它的工作正常。

步骤:

  1. 将使用旧证书签名的App版本2.10发布到开发服务器。将应用程序安装到本地计算机
  2. 将使用新证书签名的App版本2.10发布到开发服务器,覆盖现有服务器。启动应用程序,触发自动升级。工作正常!
  3. 步骤:

    1. 将使用旧证书签名的App版本2.10发布到生产服务器。将应用程序安装到本地计算机
    2. 将使用新证书签名的App版本2.10发布到生产服务器,覆盖现有服务器。启动应用程序,弹出错误窗口。 (卸载/安装,然后工作)
    3. 将使用新证书签名的应用程序安装到干净的计算机上,工作正常。
    4. 我的开发服务器和生产服务器配置完全相同:Windows server 2012,.Net Framework 4.5。它们托管在不同的物理服务器上,具有不同的IP地址。

      该应用已经安装到数千台机器上,无法让每个人都卸载/安装它。

1 个答案:

答案 0 :(得分:4)

它已经解决了。

生产服务器上的App安装程序文件夹始终为http://www.example.com。 但是,在过去的一年中,它被重定向到Web服务器上的http://example.com。当我用旧证书发布应用程序时,这从来就不是问题。所以现在我正在向www.example.com发布带有新证书的应用程序,并且它被Web服务器自动重定向到example.com,尽管它们主要是相同的IP地址。

这可能是Clickonce失败的原因,因为它必须将www.example.com和example.com视为不同的文件夹,尽管它在VS解决方案中始终是www.example.com。 我必须禁用www重定向来续订证书。