将ASP.Net表单添加到现有部署的ASP.Net Web应用程序中

时间:2009-09-28 21:37:42

标签: asp.net web-services iis deployment

我有一个ASP.Net Web应用程序,它部署到许多不同的客户服务器并托管在IIS(6或7,具体取决于站点)。该系统基于一组相当复杂的ASP.Net(aspx)页面。由于需求的快速变化,我们经常需要向系统添加表单。目前,我们使用一种相当笨拙的方法将表单添加到项目中,并将整个项目重新部署到客户服务器。

我正在寻找一种机制,允许我们进入我们系统的配置屏幕并调用托管在我们的中央Web服务器上的Web服务,该服务器将提供一个表单列表(可能以某种方式打包类似于客户可以选择安装的Java WAR文件)。安装会以某种方式将表单添加到客户的IIS中,使其在系统中可用。想法是针对某种aspx表单应用程序商店,我们的客户可以选择他们需要的表单并安装它们,而不是我们不得不花时间执行我们刚刚部署到我们的中央网络服务器的多个部署。

有没有人对如何做到这一点有任何想法?我可以使用哪些技术来实现这一目标?

3 个答案:

答案 0 :(得分:2)

如果您正在使用Web应用程序项目,那么这样做并不容易,因为所有表单的“代码隐藏”都将编译为单个DLL。每次添加新表单时,都需要将站点应用程序程序集重新部署到/bin文件夹。

如果您正在使用Visual Studio 2005中引入的“新式”无项目Web应用程序,那么可能可以执行您正在寻找的内容,因为您可以将每个页面编译为自己的DLL(已修复) Publish Web Site对话框中的命名和单页程序集。我过去曾经尝试过这种方式,但实际上它有点受欢迎。同样没有合适的项目文件对于更大的更复杂的项目来说是一件痛苦的事。

另一种方法是将所有标记和“代码隐藏”放在同一个.aspx文件中,而不是使用.aspx.cs代码隐藏文件。我认为这将使它们成为可以即时编译的自包含代码单元,但问题是所有站点都需要以这种方式构建......我认为。

这些是Visual Studio(2008)中提供的开箱即用方法。如果您需要更复杂的东西,那么您将不得不设计一些基础设施,以便在不幸的情况下实现它。

答案 1 :(得分:1)

实际上,当您只是将Web表单更改或添加到预先存在的应用程序时,您不必重新部署整个Web应用程序。正常发布网站,然后只需抓取已添加的.aspx页面等。现在抓取添加,创建页面时触摸的关联.dll。这可能就像网站.dll一样简单,或者你可以包含商业.dll和数据访问.dll。但是,当大多数文件没有被更改时,你绝不需要移动所有文件。

对于使用此系统的预配置设置,您可以使用像nAnt这样的工具并创建一个构建脚本,该脚本将构建在所需的文件之上,然后将这些文件打包到一个自解压zip文件中,该文件将放置文件, .dll到目标Web服务器上的正确路径。

上帝祝你的项目好运,并希望这对一些人有所帮助。

答案 2 :(得分:0)

您似乎有兴趣找到仅部署更改的方法!仅部署更改通常不是一个好主意,因为很容易错过一两个文件,然后整个应用程序崩溃。我认为您应该更多地关注构建和部署自动化,这将帮助您通过单击按钮部署到多个服务器。