我正在制作一个将使用 X509 证书保护的 SOAP 处理程序,其中一个要求是程序尽可能多地在现有的日志查看器中记录。显然,在 IIS 级别处理的证书有很多错误,在这种情况下是不可接受的。
我已经用 C# 代码解决了日志记录部分。那部分很容易。更难的部分是让 IIS 级错误进入代码,而不是作为无用的 Web 错误返回给客户端。我查看了这个线程,但由于正在发生的事情的性质,我们的项目缺少 App_Code 文件夹,所以它不是非常适用。
有什么建议么?
我正在制作一个将使用 X509 证书保护的 SOAP 处理程序,其中一个要求是程序尽可能多地在现有的日志查看器中记录。显然,在 IIS 级别处理的证书有很多错误,在这种情况下是不可接受的。
我已经用 C# 代码解决了日志记录部分。那部分很容易。更难的部分是让 IIS 级错误进入代码,而不是作为无用的 Web 错误返回给客户端。我查看了这个线程,但由于正在发生的事情的性质,我们的项目缺少 App_Code 文件夹,所以它不是非常适用。
有什么建议么?
对于 IIS6,我认为您需要一个 ISAPI 过滤器(仅限 C++),以便在请求被视为无效之前查看请求(例如,由于证书错误)。
如果我没记错的话,IIS 中的 SSL 也是由 ISAPI 过滤器实现的,所以我怀疑它是否具有更好地处理/记录证书错误的钩子。
我的公司在一个项目中遇到了证书问题,我们向 Microsoft 支持服务部门询问了有助于诊断的工具/日志。关于获取有关错误的更多信息的能力没有令人满意的答案。
我想重新实现 SSL 握手对您的项目来说工作量太大,因此获取更多信息的唯一方法是购买这样的 SSL 实现,假设 IIS6 存在一个并为您提供所需的信息。
假设您在 IIS7 或更高版本上运行,一般答案也适用于您——您可以使用自定义 HttpModule 为您的应用程序捕获 IIS 级错误。只是,与其将模块放在 App_Code 中,不如使用您的应用程序构建它并更改连线以查看那里。