1

我正在尝试让现有的 asp.net Web 应用程序从其内部进行更新。我们有很多不同的客户端使用应用程序,它们都有不同的连接字符串,所以它不能只是一个简单的部署。

我目前正在部署到文件系统,压缩和上传(没有 web.config),客户端会相应地下载和提取。我不喜欢这样,因为它需要在服务器上或为应用程序创建共享。

因此,我在应用程序中创建了一个 signalR 集线器,用于下载文件并将其解压缩。这可行,但是页面在开始提取时会停止从集线器返回信息,因为我猜是因为应用程序正在重新启动。

有没有办法让它在应用程序中工作并报告它的进度,如果我可以帮助它,我不想使用任何外部的东西我只是想更新它,就像你从内部更新 Wordpress 一样。

编辑:只想指出我使用了一个集线器,这样我就可以显示压缩文件下载百分比的实时进度和提取进度。

4

2 回答 2

3

我们有一个基于这个想法的定制系统。

诀窍是有一个单独的更新应用程序。该应用程序公开了一个 Web 服务,该服务接受包含应用程序部署文件的签名请求。然后,请求存储在本地队列中并由服务处理,该服务:

  1. 停止应用程序池
  2. 解压新版本
  3. 使用本地存储的属性重写配置模板文件
  4. 启动应用程序池并在出现任何问题时返回 ping

我们在我们的主要办公室需要的是一个新版本的应用程序,然后分发到周围的所有位置(目前大约 20 个)。没有什么大问题。

分发子系统是多年前在内部开发的,并且基于.net,只是因为我们当时还没有找到任何可以满足我们要求的东西。从那以后,我们没有尝试搜索任何可以做同样事情的第三方工具。

于 2013-04-18T15:20:17.933 回答
0

尽管尝试了几件事,但我无法让它工作,所以我创建了一个控制台应用程序,其中为每个客户端修改了一个配置文件,他们可以自己运行,甚至添加为计划任务,这似乎工作得很好。

于 2013-04-22T08:53:14.317 回答