【问题标题】:No-touch deployment and information about update非接触式部署和有关更新的信息
【发布时间】:2010-08-10 08:37:32
【问题描述】:

您好, 我们有一个用 .net 3.5 编写的应用程序,它使用 wcf 和 wpf 来进行演示。我们实施了无接触部署,因此用户只需单击 Internet 快捷方式,应用程序就会立即启动。 有时,当我们更新应用程序时,更新客户端应用程序、服务器和数据库大约需要 30 分钟。我们希望在更新工作期间显示“应用程序正在更新。请稍后再试”之类的信息,这样用户将无法运行应用程序或在应用程序已经运行时进行任何操作。 我们如何才能实现这种功能? PS。我们不能使用 Click-Once。

【问题讨论】:

    标签: .net wpf deployment


    【解决方案1】:

    在您的 WCF 服务上创建一个额外的方法 public bool ApplicationIsOnline()

    该方法的实现:在服务的配置文件中添加一个appsetting,指示应用程序是否在线。当您开始升级时将 appsetting 更改为 false,安装完成后将其更改回 true

    在程序启动时调用此方法,当 WCF 调用返回 true 时,您可以启动应用程序,当调用返回 false 时,您可以向用户显示一条消息,以便稍后重试。

    【讨论】:

    • 好的,但是当应用程序已经运行时,我也需要检查这种情况。我不想在每个请求之前检查它,我该如何实现它?
    • 对此有 2 个选项: 1:更改所有服务操作以调用 ApplicationOnline(),如果为 false,则抛出您需要捕获客户端的特定异常。 2:创建自定义ServiceBehavior并实现Validate方法,确保应用在线。如果不抛出异常并在客户端捕获它。
    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多