更新asp.net的现有Web应用程序建议

时间:2012-10-02 12:11:10

标签: asp.net

我有一个由多个不同客户使用的Web应用程序。目前,通过任何更改更新结束的过程如下:

  • 发布/编译应用
  • 将相关文件放入zip(不是web.config作为每个客户端的不同数据库路径,并且不想覆盖)
  • 在SQL Server上为所有存储过程生成脚本
  • 添加到邮箱
  • 将zip上传到网络
  • 我创建的WPF应用程序从客户端服务器下载zip,提取文件到web app文件夹并执行sql server存储过程的脚本

现在这确实有效,但它需要客户端的IT人员运行WPF应用程序进行更新,并且可能需要几天时间才能完成更新。所以我想做的是提供从Web应用程序内部更新Web应用程序的功能。我知道我可以创建一个DLL来执行FTP,Extract等,但是如何让它在页面上显示进度呢?

或者,如果有人可以替代更新网络应用程序而无需有人访问服务器,那么这种方法很有用,因为这种方法很难让客户知道何时有可用的更新。

1 个答案:

答案 0 :(得分:0)

你可以使用ie。

[assembly: PreApplicationStartMethod(typeof(Your.Type), "MethodNameToCall")]

在项目的AssemblyInfo.cs文件中指定,以便在部署应用程序时执行一些设置代码。这会在部署时自动运行,并允许您进行复制/设置。您可以通过

从此代码运行WPF应用程序
System.Diagnostics.Process

更新:

重新阅读这篇文章后,我很清楚这是关于从WPF应用程序转移到基于Web的应用程序。另外看起来海报只是想要一种方法,通过这种方法从客户端更新文件系统的代码发出信号,这样......

根据所需输入的复杂程度,您可能需要一个或多个页面以及导航系统才能前进和后退。

然而,一旦完成所有输入并且更新开始,您有几个选项 - 一个'hacky'另一个不那么。

1 - Hacky)使用window.location javascript和setTimeout以及会话跟踪刷新页面以更新EWWWWW后面的线程编码的进度...

2)使用setInterval创建一个ajax函数来轮询服务器(可能使用[WebMethod]属性修饰的可调用方法。此方法可以将任意数据发送回ajax调用,然后用于更新UI(也许使用类似jqueryUI进度条的东西

注意:如果您要更换垃圾箱中的任何内容,请触摸web.config或实际上任何.aspx页面。然后你将自动重启服务器...如果是这种情况,那么你将不得不编写一个单独的应用程序,它将从外部更新另一个应用程序+你应该向任何连接的用户发出信号,表示很快就会关闭并开始阻塞新用户,直到升级完成。