我正在寻找用于部署ASP的不同技术/工具.NET web应用程序项目(NOT个ASP.NET网站)投入生产?

我对持续集成构建服务器将二进制文件放在某个位置到第一个用户请求命中这些二进制文件之间发生的工作流特别感兴趣.

  1. 你是在使用一些特定的工具还是只是XCOPY?应用程序是如何打包的(ZIP、MSI等)?

  2. 首次部署应用程序时,如何设置应用程序池和虚拟目录(是手动创建还是使用某种工具创建)?

  3. 当静态资源发生变化(CSS、JS或图像文件)时,您是重新部署整个应用程序,还是只重新部署修改后的资源?当程序集/ASPX页面发生更改时如何?

  4. 您是否跟踪给定应用程序的所有已部署版本,如果出现问题,您是否有将应用程序恢复到以前已知工作状态的过程?

请随意填写上一个列表.


下面是我们用来部署ASP.NET应用程序:

  1. 我们在解决方案中添加一个Web Deployment Project,并对其进行设置以构建ASP.NET Web应用程序
  2. 我们向解决方案中添加一个安装项目(NOT个Web安装项目),并将其设置为获取Web部署项目的输出
  3. 我们添加了一个自定义安装操作,并在OnInstall事件中运行一个自定义构建.NET程序集,该程序集使用System.DirectoryServices.DirectoryEntry在IIS中创建应用程序池和虚拟目录(此任务仅在首次部署应用程序时执行).我们支持IIS中的多个网站、虚拟目录的身份验证和应用程序池的身份设置.
  4. 我们在TFS中添加了一个自定义任务来构建安装项目(TFS不支持安装项目,因此我们必须使用devenv.exe来构建MSI)
  5. MSI安装在实时服务器上(如果有以前版本的MSI,则首先将其卸载)

推荐答案

我们使用设置工厂将所有代码部署在MSI中.如果必须进行更改,我们会重新部署整个解决方案.这听起来对CSS文件来说有点矫枉过正,但它绝对可以使所有环境保持同步,而且我们确切地知道生产中是什么(我们以相同的方式部署到所有测试和uat环境).

Asp.net相关问答推荐

页面刷新后如何存储JS Select 数据

缓存httpmessage内容

如何在现有数据库中创建 ASP.Net Identity 表?

HttpRuntime.Cache[] 与 Application[]

如何注册路由区域

如何获取已构建、编码的 ViewState 的值?

使用 IIS 的 ASP.NET 调试超时

ASP.NET 在更新面板更新时显示正在加载...消息

如何计算/查找给定日期的周数?

N' 在 SQL 脚本中代表什么? (插入脚本中字符之前使用的那个)

HTTP 错误 503.该服务在简单的 ASP.NET 4.0 网站下不可用

如何从后面的 ASP.NET 代码访问 HTML 表单输入

Web.Config 中的 Assemblies node 的用途是什么?

ASP.NET MVC 路由的无限 URL 参数

ASP.NET 身份,需要强密码

ContentResult 与字符串

连接字符串正确时出现实例失败错误

在.net的内存数据库中

Page.IsPostBack 和 Page.IsCallBack 有什么区别?

Application_End global.asax