iis - 如何在不回收的情况下获取托管在 IIS 中的 Web 应用程序的完整小型转储?
问题描述
我们在生产中遇到了一个奇怪的情况,需要获取完整的内存转储。但是,写出完整的小型转储需要太多时间。因此,IIS 会在进行转储时回收该进程。
我们无法在 IIS 中增加此超时,因为这是一个实时 pod,我们不希望场中的其他 Web 服务器受到影响。
是否有可能以某种方式让 IIS 知道这个特定的进程不应该被回收?或者任何其他方式能够在我们的情况下采取完整的小型转储?
minidump 被写入本地文件系统。
编辑 1
这不是我的其他问题的重复如何在定期回收的农场中运行具体异常的 Web 应用程序的小型转储?因为挑战不同。在这个问题中,我处理了 IIS 由于已进行转储而导致不活动而终止 Web 进程的问题。在另一个问题中,问题是我们无法附加到 Web 进程并等待异常 - 该进程将在某一时刻被回收,我们将不得不重新附加。这不是一个对人类友好的过程。此外,它必须在场中的所有机器上复制。再次,对人类不友好。
解决方案
- AppPool -> 高级设置 -> 进程模型 -> Ping Enabled = false
- 进行进程内存转储(转储到系统上最快的驱动器)
- AppPool -> 高级设置 -> 进程模型 -> Ping Enabled = true
推荐阅读
- animation - SVG沿路径动画渐变
- javascript - 如何将变量从 index.html 文件加载到 results.html 文件?
- sql - 如何根据最大的优先获取记录
- node.js - 使用 mongoose 查询 MongoDB 并返回与模式的键之一匹配的字符串数组
- android - 以编程方式更改 Drawable 的背景,保持圆角半径
- javascript - Lerna 能否根据 Conventional Commits 规范修改预发布版本?
- react-native-svg - React Native 忽略 SVG 组件上设置的宽度 100%,但它确实适用于 React Native Web
- java - 能否使用 Flutter MethodChannel 从 Java 返回原生地图
- wordpress - 如何在用户列表 wordpress 中添加昵称?
- extjs - ExtJS 7:如何不同加载无法捆绑的包资源