我们遇到一个问题,每次我们将 dll 复制到 bin 目录时,我们网站上的主域就会停止运行,恢复它的唯一方法是重新启动“WWW Publishing Service”。
我们运行一个网站,其中包含许多在单个服务器上运行的 IIS 应用程序,其中每个应用程序都配置为在不同的应用程序池上运行。
我们拥有庞大的代码库,其中包含整个网站 280 多个 aspx 页面。我们的主域包含大约 100 个 aspx 页面,而子域每个包含 15 或 20 个页面。
当我们进行构建时,我们当前正在生成一堆 dll,我们手动将其复制到生产服务器的 bin 目录中。一旦我们这样做,IIS 显然就会开始回收编译每个 aspx 页面和隐藏代码。此时,该网站基本上会停止运行(有时需要重新启动 - 通过重新启动网络发布服务 - 才能再次唤醒它)。
奇怪的是,只有当我们部署到主域 IIS 应用程序(即 www.如果我们以同样的方式部署一个bin文件到子域,它几乎立即可以工作。
即使我执行 iisreset.exe,这似乎也无法解决问题。
几个问题:
- 有没有办法加快当前进程,这样我们就不必重新启动服务器?
- 是否有任何明显的代码更改或更新会导致需要重新启动服务(有时我们运行 iisreset,但这似乎并没有使其恢复生机)?
一些规格:
- 代码写在:C#
- .net框架:2.0
- 服务器 :Windows 网络服务器 2008
- iis版本:IIS7
- 数据库 :MSSQL 2008 标准
任何援助将不胜感激。提前致谢。
当你放一个app_offline.htm
如果您的主域的 wwwroot 中存在一个文件,IIS 站点就会脱机。正如 Scott Gu 所描述的,这是 IIS 的默认行为。当您执行此操作时,所有 dll 都可以被安全地覆盖。当你删除app_offline.htm
文件您的应用程序将在下次请求到来时启动。
阅读更多关于app_offline.htm
here and here.
基本上,如果您将具有此名称的文件放在 Web 应用程序目录的根目录中,ASP.NET 2.0 将关闭该应用程序,从服务器卸载应用程序域,并停止处理该应用程序的任何新传入请求。然后,ASP.NET 还将通过发回 app_offline.htm 文件的内容来响应应用程序中对动态页面的所有请求(例如:您可能希望收到“站点正在建设中”或“停机维护”消息) 。
这提供了一种方便的方法来在您进行重大更改或复制大量新页面功能时关闭您的应用程序(并且您希望避免人们在内容更新过程中点击并激活您的网站的烦人问题)。它还可以是立即解锁和卸载 .mdf 或 .mdb 数据文件位于 /app_data 目录中的 SQL Express 或 Access 数据库的有用方法。
删除 app_offline.htm 文件后,对应用程序的下一个请求将导致 ASP.NET 再次加载应用程序和应用程序域,并且生活将照常继续。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)