2010-09-03 46 views
0

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

我已经在C#代码中解决了日志记录部分。这部分很容易。更难的部分是让IIS级别的错误进入代码,而不是作为无益的Web错误返回给客户端。我查看了this thread,但由于发生的事情的性质,我们的项目缺少App_Code文件夹,所以它不是非常适用。

有什么建议吗?

+0

您的'SOAP Handler'是否是一个HTTP端点,即在服务器上响应入站连接而运行? – Kev 2010-09-04 11:40:32

+0

是的。我们基本上已经设置好了,以便请求处理程序的某些人将按照他们的请求打开.aspx网页,并且web.config会将其重定向到适当的.cs文件。 – YYY 2010-09-07 14:20:34

回答

0

假设您在IIS7或更高版本上运行,一般答案也适用于您 - 您可以使用自定义HttpModule来为您的应用程序捕获IIS级错误。只需将模块放入App_Code中,然后将其与您的应用程序一起构建,然后更改线缆以查看它。

+0

我的开发机器在IIS7上运行,但我们的生产环境正在运行IIS6。遗憾的是,这里没有特别的IIS7解决方案。 – YYY 2010-09-03 18:56:10

0

对于IIS6,我认为您需要一个ISAPI筛选器(仅限C++),才能在请求被视为无效(例如由于证书错误)之前查看该请求。

如果我没有弄错,IIS中的SSL也是通过ISAPI过滤器实现的,所以我怀疑它有挂钩来更好地处理/记录证书错误。

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

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