ISAPI 过滤器是附加到 IIS Web 服务器的 w3wp 进程的 dll。 ISAPI 过滤器必须强制导出两个函数即。 HttpFilterProc 和 GetFilterVersion。我已经编写了一个这样的过滤器,但它无法以 HttpFilterProc 中的开关案例未被激活的方式工作。我该怎么做才能检查这里有什么问题?
最佳答案
在您的 HttpFilterProc 中添加对 DebugBreak 的调用,并在将其添加为 ISAPI 过滤器之前在 Debug模式下构建您的 DLL。
如果你的 HttpFilterProc 被调用,windows 会弹出一条消息来调试进程。
如果不是,则您的 DLL 未加载。您需要检查为什么不是。一些原因可能是:
- 与应用程序池位数相比,ISAPI 过滤器配置了不同的位数。
- 您尚未在 GetFilterVersion 函数中注册任何 ISAPI 事件。查看 ISAPI 事件列表 here .
关于isapi - 如何调试 ISAPI 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7317272/