我有一个超过 1000 个用户将使用的 silverlight 应用程序。XAP 每两周就会升级一次。第二天早上,所有用户都可以访问该页面,并且对于每个用户,silverlight XAP(应用程序)的副本通过浏览器下载到本地计算机。由于用户数量更多,因此可能会有更多的网络流量。我想通过确保下载 XAP 的请求是队列并且一次处理每 100 个请求来简化这一点。让我知道可能性。
谢谢
我有一个超过 1000 个用户将使用的 silverlight 应用程序。XAP 每两周就会升级一次。第二天早上,所有用户都可以访问该页面,并且对于每个用户,silverlight XAP(应用程序)的副本通过浏览器下载到本地计算机。由于用户数量更多,因此可能会有更多的网络流量。我想通过确保下载 XAP 的请求是队列并且一次处理每 100 个请求来简化这一点。让我知道可能性。
谢谢
我假设这是浏览器外的 Silverlight 应用程序?在这种情况下,它必须调用 Application.CheckAndDownloadUpdateAsync。不要在应用程序启动期间执行此操作,而是设置一个在某个随机时间(例如,0-60 分钟后)触发的 DispatcherTimer 来执行检查。
查找调用 CheckAndDownloadUpdateAsync 的任何位置并将其替换为:
var timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMinutes(new Random().Next(60));
timer.Tick += (sender, args) =>
{
Application.Current.CheckAndDownloadUpdateAsync();
timer.Stop();
};
timer.Start();
(我省略了连接 Application.Current.CheckAndDownloadUpdateCompleted,但这必须在计时器启动之前完成。)
抱歉,我看到 silverlight 应用程序在浏览器中。在这种情况下,这与 Silverlight 无关,只是关于 Web 服务器、HTML 和 HTTP。尝试重新构建问题并添加相关标签。
我认为您的策略是使用缓存控制指令来愚弄,让一些客户端拥有陈旧的副本,而另一些客户端则获得新的副本。不知道如何做到这一点(也许 javascript 可以,或者您可能需要调整 Web 服务器),但资源是 xap 还是 jpg 或其他什么都没有关系。