ASP.NET部署

ASP.NET部署,asp.net,iis,Asp.net,Iis,在过去的几个月里,我一直在为我的学院写一个内部网站,里面有很多关于学生的报告。一切进展顺利,但每周一次(ish)我必须让他们登录IIS停止应用程序池,清除网站文件夹,清除临时asp.NET缓存,并用新网站替换网站。这不是一项大工作,但我更愿意在我想做的时候自己做 我对ASP.NET部署和IIS了解不多,有没有办法让我自己更新网站(如果可能,让系统保持活动状态)?上次我看这个时,我想我发现文件被锁定在网站目录中 不同的发布选项有什么作用?我总是在定期维护期间更新网站,通常是在工作时间之外。因此,晚

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

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


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

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

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


Visual Studio可以直接连接并部署到启用Frontpage扩展功能的网站,因此应该没有问题。

实际上,我使用两种表单:

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


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

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

如果你要这样做,你可以直接覆盖现有的文件。就我个人而言,我已经为我的部署做好了准备,我喜欢它。我有subversion设置,因此每次提交到svn时,我们的开发和登台系统都会自动更新。然后,对于live,我标记我需要的任何内容,并更改配置以从live站点的新标记中提取并强制在其上构建。它运行得非常好,你应该检查一下。它还编译你的.cs文件,如果你的代码没有生成,它就不会部署。我相信Jeff正在stackoverflow中使用它。

要在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类型,但如果愿意,您可以删除它们


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

为什么要停止应用程序池并清除临时文件?如果你覆盖网站本身的文件,它就可以正常工作

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


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

问题不在于什么时候,而在于什么是最简单和最不痛苦的方法。web配置一直被锁定,这让我很困惑,因为我不再向它添加任何内容。我经常能够直接替换它。