gpt4 book ai didi

asp.net-mvc - 部署网站的最佳方式 - 应用程序池启动停止或网站启动停止

转载 作者:行者123 更新时间:2023-12-04 06:58:29 25 4
gpt4 key购买 nike

将更改部署到网站的最佳方法是什么(替换 dll 和其他所需文件)?

应该停止和启动网站还是应该停止和启动应用程序池?

我读到当网站停止时,它仍然在内存中加载应用程序状态。在这种情况下,是否会处理旧请求? dll可以更换没有任何问题吗?网站启动时如何重新加载内容?

当应用程序池停止时,它会继续为旧请求提供服务吗?如果是,考虑到网站现在包含更改后的 dll,如何处理旧请求?

最佳答案

What is the best way to deploy changes to a website( replace the dlls and other required files) ?



最好的方法是使用 Web Deploy使过程自动化。它会自动比较文件,只替换需要的文件并删除不需要的文件,使其非常快速、高效和可靠。

Should the website be stopped and started or should the app pool be stopped and started?



您通常也不必这样做。但是,如果您想在升级期间阻止访问您的网站,并且预计升级需要的时间超过几秒钟,那么您可以停止该网站并启动另一个使用相同 IIS 绑定(bind)的网站,并显示“正在维护的应用程序” “信息。

I read that when a website is stopped, it still has the application state loaded in memory. In this case will the old request be served ? Can the dlls be replaced without any problem ? How does the content gets reloaded when the website is started?



HTTP 协议(protocol)是无状态的。因此,大多数更新的内容将从服务器上的新文件重新加载。

有几个异常(exception)。

如果您使用 out-of-process session state ,即使重新编译和重新加载应用程序,状态也会保持不变。通常,您在 session 状态中拥有的数据是您希望在升级后仍然存在的数据。

如果您使用缓存( System.Web.CachingSystem.Runtime.Caching ),如果您指定将缓存数据设为“不可删除”,则缓存数据将保留。通常,我将应用程序的单个文件用作缓存依赖项,因此当在服务器上编辑(或替换)该文件时,缓存将被重置。

输出缓存没有缓存依赖项。通常它会一直存在,直到应用程序池重新启动。但是,你可以看到 this answer在不重置应用程序池的情况下手动重置它。

Cookie 存储在远程客户端计算机上。因此,它们将完好无损地升级。

静态文件(图像、css 和 javascript 文件)通常缓存在远程客户端计算机上。因此,当您进行升级时,将查询字符串附加到这些 URL 的末尾以确保不使用缓存文件会很有帮助。见 this article对于一种这样的方法。

When the app pool is stopped, will it continue to serve the old requests? If yes, how does the old request gets served considering the website is now containing the changed dlls?



正如我已经提到的,HTTP 协议(protocol)是无状态的。服务器不会重播客户端之前的任何请求。一旦客户端收到响应,服务器基本上就会忘记它们。

Web 服务器处理升级的许多方式取决于它是 Web 应用程序还是 Web 站点(如果是 Web 站点,则它是否已预编译)。如果应用程序在升级期间正在运行,尝试访问它的用户可能会看到错误。

我的建议是:不要担心。在非高峰时间安排升级。使用 Web Deploy 自动执行该过程,以使升级窗口尽可能短。并使用上述技术确保缓存数据和内容被适本地重置。在大多数应用程序中,半夜几秒钟或几分钟的停机时间几乎不会被注意到。

关于asp.net-mvc - 部署网站的最佳方式 - 应用程序池启动停止或网站启动停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com