捕获C#代码中的IIS级别证书错误

捕获C#代码中的IIS级别证书错误,c#,iis,certificate,x509,C#,Iis,Certificate,X509,我正在制作一个用X509证书保护的SOAP处理程序,其中一个要求是程序尽可能多地在现有的日志查看器中记录日志。显然,在IIS级别处理的证书周围有很多错误,在这种情况下是不可接受的 我已经用C代码解决了日志部分。那部分很简单。更困难的部分是让IIS级别的错误进入代码中,而不是作为无用的web错误返回给客户端。我看了一下,但是我们的项目缺少一个App_代码文件夹,这是因为所发生的事情的性质,所以它不太适用 有什么建议吗?假设您运行的是IIS7或更高版本,一般的答案也适用于您——您可以使用自定义的Ht

我正在制作一个用X509证书保护的SOAP处理程序,其中一个要求是程序尽可能多地在现有的日志查看器中记录日志。显然,在IIS级别处理的证书周围有很多错误,在这种情况下是不可接受的

我已经用C代码解决了日志部分。那部分很简单。更困难的部分是让IIS级别的错误进入代码中,而不是作为无用的web错误返回给客户端。我看了一下,但是我们的项目缺少一个App_代码文件夹,这是因为所发生的事情的性质,所以它不太适用


有什么建议吗?

假设您运行的是IIS7或更高版本,一般的答案也适用于您——您可以使用自定义的HttpModule来捕获应用程序的IIS级别错误。只是,不要将模块放在App_代码中,而是用你的App构建它,并更改连线以查看那里。

对于IIS6,我认为你需要一个ISAPI过滤器(仅限C++),以便在请求被视为无效之前查看它(例如,由于证书错误)

如果我没有弄错的话,IIS中的SSL也是由ISAPI过滤器实现的,所以我怀疑它是否有钩子来更好地处理/log证书错误

我的公司在一个项目中遇到了证书问题,我们向Microsoft支持服务部门寻求有助于诊断的工具/日志。关于获取更多错误信息的能力,没有令人满意的答案


我想重新实现SSL握手对您的项目来说太多了,因此获得更多信息的唯一方法是购买这样的SSL实现,假设IIS6存在一个SSL实现,并提供您需要的信息。

我的开发机器运行在IIS7上,但我们的生产环境运行的是IIS6。不幸的是,IIS7特定的解决方案在这里不是很有用。您的“SOAP处理程序”是否是HTTP端点,即运行在响应入站连接的服务器上?是的。我们基本上已经设置好了它,这样请求处理程序的人会用他们的请求点击一个.aspx网页,web.config会将其重定向到相应的.cs文件。