【问题标题】:ASP.NET DeploymentASP.NET 部署
【发布时间】:2008-10-02 01:24:49
【问题描述】:

在过去的几个月里,我一直在为我的大学编写一个内部网站,其中包含许多关于学生的员工报告。一切顺利,但每周一次(ish)我不得不去 IT 让他们登录 IIS 停止应用程序池,清除网站文件夹,清除临时 asp.NET 缓存并将网站替换为新的一个。不是一项大工作,但我更愿意自己做,什么时候做。

我对 ASP.NET 部署和 IIS 了解不多,有没有办法让我自己更新网站(如果可能,保持系统运行)?上次我看这个时,我想我发现文件被锁定在网站目录中。

不同的发布选项有什么作用?

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

    为什么要停止应用程序池并清除临时文件?它可以很好地覆盖网站本身的文件。

    我唯一要做的就是进入 bin 目录并清除所有随机命名的 .dll 文件。

    Visual Studio 也有它自己的部署选项,您只需提供一个 UNC 路径,它将删除旧文件并复制新版本的站点。它甚至会为你抛出一个 app_offline.html。

    【讨论】:

    • 网络配置一直被锁定,这让我很困惑,因为我不再经常添加任何东西,我可以直接替换。
    【解决方案2】:

    实际上,我使用两种形式:

    1) 将表单 VS 发布到本地目录,然后上传(通过 ftp)到服务器。我这样做是为了使用filezilla ftp客户端并且不传输web.config文件。

    2) 预编译网站(来自 ccnet),压缩它,传输到服务器,连接服务器(远程桌面)并执行一个 .bat 文件,将应用程序置于离线模式(App_Offline.htm),备份它,然后解压缩新版本。我们计划为管理员创建第二个网站,以避免手动连接和执行 .bat。

    【讨论】:

      【解决方案3】:

      您可以在 IIS 中激活此网站的 Frontpage-Extensions。他们处理整个部署和更新。我们为每个网站都激活了它们以便于维护。

      Visual Studio 可以直接连接和部署到启用 Frontpage-Extension 的网站,所以应该没有问题。

      【讨论】:

        【解决方案4】:

        如果你要走这条路,你可以覆盖现有的文件。我个人有Cruise Control.NET 用于我的部署,我喜欢它。我有颠覆设置,所以我们的开发和登台系统会在每次提交到 svn 时自动更新。然后对于现场我标记我需要的任何内容并更改配置以从现场站点的新标记中提取并强制在其上构建。它工作得很好,你应该检查一下。它还会编译您的 .cs 文件,如果您的代码未构建,则不会部署。我相信 Jeff 将它与 stackoverflow 一起使用。

        【讨论】:

          【解决方案5】:

          您可以使用 Beyond Compare 之类的程序连接到服务器的 FTP(您可以指向网站文件夹)并上传新文件。您可以比较您的文件,逐行查看比较,并仅上传更改的文件。对我来说效果很好。

          【讨论】:

            【解决方案6】:

            要在我们的 IIS 服务器上安装 ASP.net 应用程序(不需要 Visual Studio),我们从版本控制中签出项目代码,然后在项目文件上运行 msbuild.exe。您可以在 .Net framework 文件夹中找到 msbuild.exe,例如:

            C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

            我们唯一要做的就是从其中一台开发机器复制目标定义,这些目标定义通常存储在:

            C:\Program Files\MSBuild\

            将 .csproj/.vbproj 文件保留在 web 文件夹中是安全的,因为 IIS 不会为它们提供服务,因为在该机器上没有为它们定义 MIME 类型,但您可以根据需要删除它们。

            这个设置也很容易编写脚本,这是一个好处。

            【讨论】:

              【解决方案7】:

              我总是在定期维护期间更新我的网站,通常是在工作时间之外。因此,晚上或周末是关闭服务并更新网站的最佳时间。安排维护,以便每个人都知道他们将停机。

              【讨论】:

              • 问题不在于何时,而在于什么是最简单、最不痛苦的方法。
              猜你喜欢
              • 2011-08-01
              • 2018-11-21
              • 1970-01-01
              • 2013-11-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多