ASP.Net应用程序自我更新

时间:2013-04-18 15:03:59

标签: asp.net

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

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

所以我在应用程序中创建了一个signalR hub,它下载文件并解压缩。这可以工作,但是当它开始提取时页面停止从中心获取信息,因为应用程序正在重新启动我猜。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

  1. 停止应用程序池
  2. 解压缩新版本
  3. 使用本地存储的属性重写配置模板文件
  4. 启动应用程序池并在出现任何问题时回拨
  5. 我们在主办公室需要的是一个新版本的应用程序,然后分发到周围的所有位置(目前大约20个)。没什么大不了的。

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

答案 1 :(得分:0)

尽管尝试了几件我无法解决的问题,所以我创建了一个控制台应用程序,其中包含为每个客户端修改的配置文件,他们可以自己运行,甚至可以添加为计划任务,这似乎很好