如何解决当新的DLL复制到BIN目录时,ASP.net C#要求IIS重新启动
|| 我们遇到一个问题,即每次将dll复制到bin目录时,我们网站上的主域都会停止运行,并且将其备份的唯一方法是重新启动“ WWW Publishing Service”。 我们运行一个网站,其中包含在单个服务器上运行的多个IIS应用程序,其中每个应用程序都配置为在不同的应用程序池中运行。 我们有一个庞大的代码库,其中包含整个网站的280多个aspx页面。我们的主域包含大约100个aspx页面,而子域则每个包含15或20个页面。 当我们进行构建时,我们当前正在生成一堆dll,我们将它们手动复制到生产服务器的bin目录中。一旦我们这样做,IIS显然就开始了对每个aspx页和后台代码进行编译的循环。此时,该站点实际上已停止运行(有时需要重新启动-通过重新启动Web发布服务-才能再次唤醒它)。 奇怪的是,这仅在我们部署到主域IIS应用程序(即www。)时发生。如果我们以相同的方式将bin文件部署到子域,它几乎可以立即生效。 即使我执行iisreset.exe,这似乎也无法解决问题。 几个问题: 无论如何,有没有加快当前进程的速度,所以我们不必重新启动服务器? 是否有任何明显的代码更改或更新会导致需要重新启动服务(有时我们运行iisreset,但这似乎无法使其恢复活力)? 一些规格: 代码写在:C# .net框架:2.0 服务器:Windows Web Server 2008 IIS版本:IIS7 数据库:MSSQL 2008标准 任何援助将不胜感激。提前致谢。解决方法
当您在主域的wwwroot中放置一个“ 0”文件时,IIS站点将脱机。正如Scott Gu所述,这是IIS的默认行为。执行此操作时,所有dll都可以安全地覆盖。并且,当您删除“ 0”文件时,您的应用程序将在下次发出请求时启动。
在此处和此处了解有关
app_offline.htm
的更多信息。
基本上,如果将具有该名称的文件放在Web应用程序目录的根目录中,则ASP.NET 2.0将关闭该应用程序,从服务器上卸载应用程序域,并停止处理该应用程序的任何新传入请求。然后,ASP.NET还将通过发送回app_offline.htm文件的内容来响应应用程序中对动态页面的所有请求(例如:您可能希望“正在建设站点”或“维护中断”消息) 。
这是在进行重大更改或复制大量新页面功能时关闭应用程序的便捷方法(并且您希望避免在内容更新过程中人们点击并激活您的网站这一烦人的问题)。这也是一种立即解锁并卸载其.mdf或.mdb数据文件位于/ app_data目录中的SQL Express或Access数据库的有用方法。
删除app_offline.htm文件后,对应用程序的下一个请求将导致ASP.NET再次加载应用程序和应用程序域,并且生命将照常继续。
, 据我所知,当您将一个dll添加到bin文件夹时,没有必要执行iisreset。该dll应该从bin自动加载。
将新的dll添加到全局程序集缓存时,应该执行iisreset。
, 您可以在复制dll时在IIS中停止该网站,然后重新启动它吗?因为它不会停止在同一IIS中托管的其他网站。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。