2009-04-28 26 views
2

比方說,我有一個Web服務,它返回基於傳入用戶的圖像集合。現在我用一個無效的用戶調用Web服務。該調用會拋出UnauthorizedAccessException,並顯示一條消息,指出用戶未獲得授權。我在哪裏/如何本地化Web服務中引發的異常?

我想將此消息本地化。我在哪裏根據錯誤代碼本地化此消息,在客戶端?或者,我是否首先將「語言」參數傳遞給該方法?我是否使用HTTP狀態碼,以便客戶端可以本地化消息?

回答

2

返回的錯誤代碼與網絡服務一樣糟糕,同樣的原因 - 同樣的原因 - 如果您要求所有呼叫者在調用服務後檢查錯誤代碼,那麼某些調用者將無法做到這一點。

你應該在服務中拋出異常。這些例外將變成SOAP故障。在客戶端上,這些將顯示爲例外(至少對於.NET客戶端而言)。如果您選擇顯示這些例外的消息屬性,那取決於您。如果你選擇顯示它,那麼它也取決於你本地化 - 在客戶端。

請注意 - 否則,您必須告訴服務客戶端的文化,只是爲了服務可以將本地化文本發送回客戶端。最好將這些信息保存在客戶端。

+0

好的,這對我來說似乎更自然。我將基於ExceptionType的本地化。這也讓我的服務器端代碼更清潔。 – 2009-04-28 10:28:40