fyj*_*ham 8 c# asp.net iis iis-7
我们目前有一个进程可以重新部署ASP.NET网站.代码本身就是一个ASP.NET应用程序.当前的方法已经工作了一段时间,只是循环遍历一个文件夹中的所有文件,并将它们复制到webroot中文件的顶部.
出现的问题是偶尔文件最终被使用,因此无法复制.这在过去是断断续续的,无关紧要,但在我们的一些较高流量站点,它现在大部分时间都会发生.
我想知道是否有人有一个解决方法或替代方法,我没有想到.目前我的想法是:
有没有人知道最好的方法是什么,或者如果没有像拥有管理员权限的用户那样运行发布应用程序就可以做#2(愿意授予它特殊权限,但我宁愿不要管理员)?
编辑
基础架构的澄清......我们在NLB中有2个IIS 7 Web服务器从共享NAS运行他们的webroots(更清楚的是,他们在NAS上使用完全相同的webroot).我们进行了大量的部署,以至于任何我们无法实现自动化的方法都无法实现.
Fra*_*nov 12
您需要做的是临时阻止IIS处理该应用程序的任何传入请求,以便您可以复制新文件然后再次启动它.这将导致您的客户停机时间很短,但除非您的网站是关键任务,否则这不应该是一个大问题.
ASP.NET具有针对此方案的功能.基本上,它归结为在webapp的根目录中临时创建名为App_Offline.htm的文件.一旦文件存在,IIS将删除您的应用程序的工作进程并卸载正在使用的任何文件.复制文件后,可以删除App_Offline.htm文件,IIS将很快再次开始搅拌.
请注意,当该文件存在时,IIS将提供其内容作为对您的webapp的任何请求的响应.所以要小心你放在文件中的内容.:-)
| 归档时间: |
|
| 查看次数: |
2217 次 |
| 最近记录: |