繁体   English   中英

突然的IIS应用程序关闭

[英]Sudden IIS application's shutdown

我有一个ASP.net网站的多个版本,除了最近开始突然停止运行的最新版本以外,其他所有版本都工作正常。 每个版本都在不同的应用程序池中运行。 我们的调查结果如下:

  • 启动Web应用程序几分钟后,将触发Application_End事件。 但是,此后未触发Application_Start。
  • 停止应用程序后,大多数页面无法使用任何样式,因为我们的样式是使用“ BundleTable”捆绑在一起的。 所有捆绑软件均返回404错误,但是依赖于Web服务的登录过程运行良好,并将我移至主页(由于404响应,没有样式)
  • 请求任何物理资源(image / js / css / svc)都可以
  • 触发Application_End事件后,与此应用程序池相关的w3wp进程仍在运行。 使用任务管理器杀死它不会改变。 它将再次启动而不会导致application_start被解雇
  • 停止/重新启动/回收IIS /池不会导致Application_Start被触发(我正在使用自定义日志记录进行检查)。 有时会删除asp临时文件,但并非每次都删除。 现在,我已经尝试了所有方法,但无法重新开始!
  • 项目清单

我正在使用Windows Server 2012 64x,IIS 8.5和.net V4.5。 任何提示表示赞赏

更新1:这是错误页面的快照

更新2:经过几次测试并在各处添加了更多日志之后,我可以用一种更简单的方式来概括该问题:首先,该问题仅在并且仅在发布网站时启用“发布期间预编译”选项的情况下显示,并在单个程序集中合并所有输出DLL。 使用上述配置发布后,Application_Start事件将在第一页请求上触发,这是正常现象,而我在此事件中拥有的主要代码是注册所有CSS和JS包,并配置URL路由。 该应用程序将正常运行约。 30分钟后,将触发Application_End(“由于HostingEnvironment启动了关闭”关闭原因),但不会再次触发Application_Start! 奇怪的是,应用程序将继续为后续请求提供服务(例如:连接到数据库,执行日志记录,验证用户身份,为WCF服务请求提供服务...),但所有在Application_Start中注册的捆绑包和URL路由都将丢失。 另一个提示是,触发Application_End之后,不会处理global.asax文件中处理的一般错误(例如:404)! 看来应用程序只是忽略或忘记再次处理此文件!

修复所有编译警告后,终于解决了该问题。 我无法确定是哪个人解决了该问题,但无论如何想分享我的经验。 发现的警告如下:

  1. 删除未使用的变量(大约10个)(不会影响)
  2. 重复的名称空间导入(大约10个)(不应影响)
  3. 我们有一个过时的WCF服务代理。 因此,我们生成了新方法(未添加新方法,并且对数据类型进行了一些更改。但是,此服务通常由超出我们测试范围的某个外部扩展程序调用
  4. 与引用的项目之间的区域性设置(AssemplyInfo.cs-> AssemblyCulture)中的冲突有关的警告(也不确定这是否会影响,因为在不合并页面和控件程序集的情况下进行正常发布时,我们没有任何问题)

问候,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM