2011-08-04 38 views
0

我們的解決方案中有一個自定義的異常處理行爲(實現IErrorHandler),它基本上使用Automapper將異常轉換爲故障。WCF Fault - 缺少細節元素

自第1天起,這一直運行良好。但是我們剛剛注意到,在我們的共享開發服務器上瀏覽ServiceTraceViewer(查看服務器日誌 - 不是客戶端)時,我們的服務返回的任何故障都忽略了detail元素。

在我的開發機器上運行完全相同的代碼和配置,正確填充detail元素。正如我所說的配置文件(行爲,綁定)在兩臺機器上是相同的。兩種配置都指定includeExceptiondetailsInFaults = true。

我還添加了一堆的日誌報表似乎表明,同樣的代碼路徑遵循與像故障代碼,故障原因等

我的dev的機器各種事物相同的值兩臺機器是2008R2標準(64位)。有問題的服務器也是2008R2標準版(64位)。

如果需要,我可以發佈代碼的提取,但在第一種情況下,有什麼環境可以允許我們看到的?從問題的文件

提取物:

<s:Body u:Id="_1"> 
<s:Fault> 
<s:Code> 
<s:Value>s:Sender</s:Value> 
</s:Code> 
<s:Reason> 
<s:Text xml:lang="en-NZ">An error occured during the request to the ...</s:Text> 
</s:Reason> 
</s:Fault> 
</s:Body> 
+0

只是爲了理智,你能否說在*客戶*上實際上沒有可用的詳細信息? –

+0

嘿克里斯蒂安,當然 - 客戶端svclog顯示相同的東西。現在我們正在監控UAT環境,看看問題是否會出現在那裏。如果沒有,我猜這是環境問題,僅限於一臺機器。 – 6footunder

+0

在這一點上,它仍然是a)真的很奇怪,b)一個大問題! – 6footunder

回答

0

沒有100%地肯定禮儀在這裏。這是我想我的具體品牌愚蠢的答案。也許別人會是愚蠢的,那麼答案適用於他們...

我確信我比較了一切(我說完全相同的代碼/配置)。但是我剛剛給出了一個快速的視覺行爲配置文件。在另一位開發人員走近我之後,我意識到本地文件與服務器文件不同。衛生署!

其實服務器上的文件已經通過後生成步驟添加一個額外的線 - 觸發其實現IErrorHandler除了我們已經使用記錄等

的IErrorHandler行爲我想我會的另一個自定義行爲現在開放另一個問題,尋求對具有實現相同接口的多個行爲並且不污染其他功能(如返回故障)的方法的回答。