我正在製作一個將使用X509證書進行保護的SOAP處理程序,其中一個要求是程序儘可能在現有的日誌查看器中進行日誌記錄。顯然,圍繞在IIS級別處理的證書存在很多錯誤,在這種情況下這是不可接受的。在C#代碼中捕獲IIS級證書錯誤
我已經在C#代碼中解決了日誌記錄部分。這部分很容易。更難的部分是讓IIS級別的錯誤進入代碼,而不是作爲無益的Web錯誤返回給客戶端。我查看了this thread,但由於發生的事情的性質,我們的項目缺少App_Code文件夾,所以它不是非常適用。
有什麼建議嗎?
我正在製作一個將使用X509證書進行保護的SOAP處理程序,其中一個要求是程序儘可能在現有的日誌查看器中進行日誌記錄。顯然,圍繞在IIS級別處理的證書存在很多錯誤,在這種情況下這是不可接受的。在C#代碼中捕獲IIS級證書錯誤
我已經在C#代碼中解決了日誌記錄部分。這部分很容易。更難的部分是讓IIS級別的錯誤進入代碼,而不是作爲無益的Web錯誤返回給客戶端。我查看了this thread,但由於發生的事情的性質,我們的項目缺少App_Code文件夾,所以它不是非常適用。
有什麼建議嗎?
假設您在IIS7或更高版本上運行,一般答案也適用於您 - 您可以使用自定義HttpModule來爲您的應用程序捕獲IIS級錯誤。只需將模塊放入App_Code中,然後將其與您的應用程序一起構建,然後更改線纜以查看它。
我的開發機器在IIS7上運行,但我們的生產環境正在運行IIS6。遺憾的是,這裏沒有特別的IIS7解決方案。 – YYY 2010-09-03 18:56:10
對於IIS6,我認爲您需要一個ISAPI篩選器(僅限C++),才能在請求被視爲無效(例如由於證書錯誤)之前查看該請求。
如果我沒有弄錯,IIS中的SSL也是通過ISAPI過濾器實現的,所以我懷疑它有掛鉤來更好地處理/記錄證書錯誤。
我的公司在項目中遇到證書問題,我們向Microsoft支持服務部門詢問有助於診斷的工具/日誌。關於獲得關於錯誤的更多信息的能力沒有令人滿意的答案。
我猜重新實現SSL握手對您的項目來說太多了,所以獲得更多信息的唯一方法就是購買這樣的SSL實現,假設存在IIS6併爲您提供所需的信息。
您的'SOAP Handler'是否是一個HTTP端點,即在服務器上響應入站連接而運行? – Kev 2010-09-04 11:40:32
是的。我們基本上已經設置好了,以便請求處理程序的某些人將按照他們的請求打開.aspx網頁,並且web.config會將其重定向到適當的.cs文件。 – YYY 2010-09-07 14:20:34