none
系统升级 RRS feed

  • 问题

  • 有个疑问,silverlight + WCF 的系统构架。
    如果服务器端的WCF参数什么的发生了改变,客户端的Silverlight一直打开的状态下,
    客户端肯定会出错。这样的情况大家都是怎么处理的呢。

    就是silverlight系统部署后,系统升级的做法应该怎么样才好?

    2011年4月28日 3:52

答案

  • 你的想法很多,不过好像理论上是不可行的。不过你可以通过定义一个通用的方法来实现wcf接口以后都不改变的方式来实现。例如:void dothing(byte[] data);


    2011年4月29日 21:29
    版主

全部回复

  • 你的想法很多,不过好像理论上是不可行的。不过你可以通过定义一个通用的方法来实现wcf接口以后都不改变的方式来实现。例如:void dothing(byte[] data);


    2011年4月29日 21:29
    版主
  • 你好,

    我的理解是你担心的是Silverlight是如何自动更新的问题。

    如果你是浏览器版的Silverlight应用程序,请参考以下帖子:

    http://social.msdn.microsoft.com/Forums/zh-CN/silverlightzhchs/thread/30df03be-24f7-4a1f-b0f9-fb8a40726a9d/

    如果你是浏览器外(OOB)的应用程序,你可以使用CheckAndDownloadUpdateAsync 方法 启动异步进程以检查并下载应用程序的更新版本。

    这里有一个简单的例子, 我把代码放在App.xaml.cs 文件中:

     public App()
    {
        this.Startup += this.Application_Startup;
        this.UnhandledException += this.Application_UnhandledException;

        InitializeComponent();

        if (Application.Current.IsRunningOutOfBrowser)
        {
            App.Current.CheckAndDownloadUpdateCompleted +=
                new CheckAndDownloadUpdateCompletedEventHandler(CheckAndDownloadUpdateCompleted);
            App.Current.CheckAndDownloadUpdateAsync();
        }
    }

    void CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
    {
        if (e.Error == null && e.UpdateAvailable)
        {
            MessageBox.Show("程序已经更新,请重新启动程序");
        }
    }

     

    希望这对你有所帮助。


    Daoping Liu - MSFT
    2011年5月3日 5:23
    版主
  • 你的想法很多,不过好像理论上是不可行的。不过你可以通过定义一个通用的方法来实现wcf接口以后都不改变的方式来实现。例如:void dothing(byte[] data);


     

    谢谢,因为客户和肯能一直打开浏览器,比如web版的交易系统。
    觉得void dothing(byte[] data);这个方式是唯一信得通的。

    2011年5月5日 5:55
  • 你好,

    我的理解是你担心的是Silverlight是如何自动更新的问题。

    如果你是浏览器版的Silverlight应用程序,请参考以下帖子:

    http://social.msdn.microsoft.com/Forums/zh-CN/silverlightzhchs/thread/30df03be-24f7-4a1f-b0f9-fb8a40726a9d/

    如果你是浏览器外(OOB)的应用程序,你可以使用CheckAndDownloadUpdateAsync 方法 启动异步进程以检查并下载应用程序的更新版本。

    这里有一个简单的例子, 我把代码放在App.xaml.cs 文件中:

     public App()
    {
        this.Startup += this.Application_Startup;
        this.UnhandledException += this.Application_UnhandledException;

        InitializeComponent();

        if (Application.Current.IsRunningOutOfBrowser)
        {
            App.Current.CheckAndDownloadUpdateCompleted +=
                new CheckAndDownloadUpdateCompletedEventHandler(CheckAndDownloadUpdateCompleted);
            App.Current.CheckAndDownloadUpdateAsync();
        }
    }

    void CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
    {
        if (e.Error == null && e.UpdateAvailable)
        {
            MessageBox.Show("程序已经更新,请重新启动程序");
        }
    }

     

    希望这对你有所帮助。


    Daoping Liu - MSFT

    上面的方法无法解决客户一直打开浏览器, 而服务器端的wcf服务改变的情况。
    2011年5月5日 5:57
  • 你好,

    非常抱歉对你问题理解有误。


    Daoping Liu - MSFT
    2011年5月5日 11:09
    版主