2008-10-02 116 views
4

在过去的几个月里,我一直在为我的大学写一个内部网站,里面有很多关于学生的报告。这一切都很顺利,但每周一次(ish)我不得不去IT让他们登录到IIS停止应用程序池,清除网站文件夹,清除临时的asp.net缓存,并用新的一个。不是一个大工作,但我宁愿自己做我想做的时候。ASP.NET部署

我对ASP.NET部署知之甚少,IIS有没有办法让我自己更新网站(如果可能,让系统保持活跃状态​​)?上次我看到这个,我想我发现文件被锁定在网站目录中。

不同的发布选项实现了什么?

回答

2

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

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

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

-1

我经常在计划维护期间更新我的网站,通常在工作时间之外。因此,晚上或周末是关闭短时间服务的最佳时间,并更新网站。安排维护,让每个人都知道他们将是一个宕机时间。

+0

问题不在于什么时候,但最简单和最不痛苦的方法是什么。 – Geoff 2008-10-02 01:31:54

1

您可以在IIS中激活此Web的FrontPage扩展。他们处理整个部署和更新。我们让他们为每个网站激活,以方便维护。

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

1)发布形式VS到本地目录,然后上传(通过FTP)服务器:

2

其实,我有2种形式的工作。我正在使用这种方式来使用filezilla ftp客户端,并且不要传输web.config文件。

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

+0

有关它的任何脚本? – Kiquenet 2011-02-14 09:54:49

+0

@alhambraeidos目前不在... – Zote 2011-02-14 12:15:47

0

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

1

如果您正在使用该路线,则可以覆盖存在的文件。就我个人而言,我有Cruise Control.NET,我喜欢它。我有颠覆设置,所以我们的开发和登台系统会自动更新,每次提交到svn。然后,为了生活,我会标记需要的任何内容,并更改配置以从Live网站的新标记中拉取并强制构建它。它工作得很好,你应该检查出来。它还会编译你的.cs文件,如果你的代码不能生成,就不会部署。我相信杰夫正在使用它与stackoverflow。

0

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

C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0。50727 \

我们必须做的唯一的事情是整个目标定义副本从开发机器,通常是存储在一个:

C:\ Program Files文件\的MSBuild \

它的安全将.csproj/.vbproj文件保留在Web文件夹中,因为IIS不会提供它们,因为在该机器上不会为它们定义MIME类型,但是如果您愿意,可以将其删除。

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