如果我的服務遇到錯誤,我希望該線程返回一個錯誤並終止,但以後的請求應該仍然正常工作。我該怎麼做呢?如果我有一個未處理的異常,它將被傳回客戶端,但服務停止。C#WCF服務拋出一個錯誤,但繼續
回答
什麼樣的未處理的異常?除非異常是終止異常(堆棧溢出等),否則ServiceHost應該繼續響應隨後的請求。
默認情況下,每個請求都會獲得自己的服務實現實例,因此,其中一個請求處理程序中的錯誤不應影響其他請求處理程序。
因此,在WCF的默認行爲中,每個請求都會獲得一個品牌嶄新的服務類新實例,然後處理該請求並終止 - 是否發生異常。可能的問題是例外情況 - 如果您讓它傳遞迴客戶端「未過濾」,那麼通道(客戶端和服務器之間的通信鏈路)可能會「故障」,從而無法使用。
如果您將所有服務例外包裝到FaultException
或FaultException<T>
,那麼您的客戶端和服務器之間的通道應該沒問題。爲了捕獲服務器上的所有可能的錯誤,請檢查在您的服務類中實現IErrorHandler接口。
如果我使用
在這種情況下,您只能同時使用一個實例 - 但每個請求仍會獲得自己的服務類副本。 – 2010-10-15 18:31:52
- 1. WCF服務在WCF服務主機中拋出錯誤
- 2. 在WCF服務拋出異常拋出一個
- 3. WCF服務拋出NetDispatcherFaultException
- 4. 當對PrincipalContext驗證憑證時,WCF服務會拋出錯誤?
- 5. 調用WCF服務時JQuery.Post拋出錯誤
- 6. WCF 4路由服務拋出處理程序錯誤
- 7. 調用從測試網站WCF服務方法拋出錯誤
- 8. 計劃任務拋出一個錯誤
- 9. C++徵拋出錯誤但計算
- 10. 被拋出一個愚蠢的支架錯誤。還不清楚如何繼續
- 11. C++拋出錯誤
- 12. 調用另一個WCF服務的WCF服務失敗,出現Web錯誤400錯誤的請求
- 13. 用Jasmine測試AngularJS服務拋出一個錯誤parsed.protocol
- 14. 爲什麼這會拋出一個內部服務器錯誤
- 15. 什麼導致Azure服務總線中繼WCF服務拋出AddressAlreadyInUseException
- 16. Web服務拋出錯誤System.ServiceModel.EndpointNotFoundException
- 17. InteropExcel.dll拋出錯誤的服務器
- 18. 訪問web服務,拋出錯誤
- 19. CustomSqlMembership拋出服務器錯誤間歇
- 20. pg_query拋出一個錯誤
- 21. ComboBoxItem繼續拋出綁定錯誤,儘管風格
- 22. 異常處理繼續錯誤,然後重新拋出
- 23. 繼續拋出錯誤:win chill index爲0
- 24. 繼續錯誤
- 25. 調用HTTPS來自C#代碼的JBoss服務拋出一個驗證錯誤
- 26. 定時任務拋出錯誤500內部服務器錯誤
- 27. WCF服務繼承
- 28. 錯誤在Javascript中繼續下一個?
- 29. Applescript - 調用一個錯誤並繼續
- 30. 子查詢中包含一個錯誤 - 但sql語句繼續
我在拋出FaultException –
Xodarap
2010-10-15 17:03:16