我有一堆WCF SOAP服務在服務主機中配置ServiceCredentials行爲以使用System.IdentityModel來驗證傳入聲明令牌。SecurityExceptions未在WCF服務中捕獲
相同的服務主機配置IErrorHandler以捕獲服務中引發的任何異常。這個FaultHandler被連接到服務中的每個通道調度程序。
問題是System.IdentityModel標記驗證代碼在檢測到無效標記時拋出System.SecurityException
,但此異常未被FaultHandler捕獲(因此未記錄)。
爲什麼這些異常沒有被IErrorHandler捕獲?我怎樣才能確保這些例外記錄?
This answer指向相同的問題,但不提示解決方案。
This comment表明它是預期的,但我不明白這是爲什麼。
可以,如果你和wcf記錄一起使用,它會記錄wcf的所有內部錯誤,我想我們應該使用它https://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx – nhabuiduc
打開WCF跟蹤是我找到拋出異常的方式,但它不能縮放到生產。我們有集中的異常日誌記錄是有原因的。 – MvdD
我相信安全異常是由WCF運行時觸發的,即使在你的服務類(實現了實際的服務代碼,也是「IErrorHandler」接口)之前。既然這些發生在你的服務類被實例化之前,那麼它應該如何捕獲並處理這個錯誤呢? –