C# 突然的IIS应用程序';s关闭

C# 突然的IIS应用程序';s关闭,c#,asp.net,iis,C#,Asp.net,Iis,我有一个ASP.net网站的多个版本,除了最近突然停止的最新版本外,所有版本都工作正常。每个版本在不同的应用程序池中运行。我们的调查结果如下: 启动web应用程序几分钟后,将触发应用程序\u End事件。但是,在此之后不会触发应用程序启动 应用程序停止后,大多数页面都没有样式,因为我们的样式是使用“BundleTable”绑定的。所有捆绑包都返回404错误,但是依赖于web服务的登录过程工作正常,并将我移动到主页(由于404响应而没有样式) 请求任何物理资源(image/js/css/svc)

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

  • 启动web应用程序几分钟后,将触发应用程序\u End事件。但是,在此之后不会触发应用程序启动
  • 应用程序停止后,大多数页面都没有样式,因为我们的样式是使用“BundleTable”绑定的。所有捆绑包都返回404错误,但是依赖于web服务的登录过程工作正常,并将我移动到主页(由于404响应而没有样式)
  • 请求任何物理资源(image/js/css/svc)都可以
  • 触发应用程序结束事件后,与此应用程序池相关的w3wp进程仍在运行。用任务管理器杀死它不会改变。它将再次启动,而不会导致应用程序启动
  • 停止/重新启动/回收IIS/池不会导致启动应用程序(我正在使用自定义日志进行检查)。删除asp临时文件有时有效,但并非每次都有效。现在我什么都试过了,但都不能再开始了
  • 列表项
我使用的是windows server 2012 64x、IIS 8.5和.net V4.5。如有任何提示,我们将不胜感激

更新-1: 下面是一个错误页面的示例

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

在修复所有编译警告后,问题最终得到解决。我不知道是哪一个解决了这个问题,但我想分享一下我的经验。发现的警告如下所示:

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

  • 关于,

    是否检查了分配的端口和绑定?是否检查了EventViewer?@RuardvanElburg是。相同绑定下的所有其他应用程序都在工作well@Boney是的。完全没有,没有警告或错误。您的应用程序池是否在用户“ApplicationPoolIdentity”下运行?