在擺弄WCF錯誤契約時,我希望能夠在我的故障中重用我的自定義Exception繼承樹作爲TDetail。在開始工作之後,我開始思考這個問題(是的,在完成工作之後,你知道這是思考的最佳時機)。我注意到客戶端獲取了序列化爲TDetail的異常的完整堆棧跟蹤。正在使用.net異常作爲WCF故障合同存在安全風險?
現在我在想這就是你不打開<servicedebug includeExceptionDetailInFaults="true" />
的確切原因。但我不確定。作爲TDetail使用我的例外是否會對我造成安全風險?我的其他選擇是什麼?
我已經嘗試在我的自定義異常上使用DataContracts來做這件事,但事實證明,您不能以這種方式混合DataContracts和ISerializable對象。所以爲了實現這個,我應該重新實現自定義異常的ISerializable.GetObjectData方法,或者實現等價的FaultContracts。鑑於我喜歡我的Intellisense(在實現GetObjectData時沒有獲得),並且我喜歡對DataContracts的WCF工具的神奇支持,所以我使用後者。 – dvdvorle 2012-02-21 08:18:10