2010-10-21 72 views
0

我的Web服務方法中的一個字段接受DateTime值。一旦服務用戶以錯誤的格式提供了價值:「31-10-2010」(或者可能是「31-10-10」,說實話:我不確定,現在正在執行採伐)。它是「dd-mm-yyyy」而不是「標準XML日期時間爲」yyyy-mm-ddTHH:MM:SS「。ASP.NET WebService:不要抱怨日期格式

問題在於拒絕將此日期作爲」錯誤「(或無效)Web服務成功地解析這個字符串作爲有效日期,它被解析爲「1月31日,2011上午12時10分」。

問題1.爲什麼日期是在所有分析?

問題2.如何防止?

PS我已經實現了檢查日期的業務邏輯在一些有意義的範圍內(不超過10年後),但這並不總是幫助...

回答

0

XML具有明確定義的日期和時間格式。沒有任何藉口可以讓客戶以不同的格式發送日期。

  1. 如果日期未被解析,那麼會傳遞給服務的是什麼?
  2. 我不相信你。我從未見過ASMX服務對日期/時間格式有任何幽默感。請張貼一些代碼來重現問題。
+0

John,謝謝你的回答。 1)如果日期未被解析,則應發回「無效請求」錯誤或類似錯誤消息。 2)代碼位於「客戶端」,我知道他們的應用程序是在UNIX下運行的。可能他們認爲發送「31-10-2010」... – Budda 2010-10-21 17:27:38

+0

@Budda:它不會那樣工作。他們以SOAP格式發送XML。他們應該根據服務的WSDL發送它。對於他們使用任何其他格式沒有任何藉口,因爲在將WSDL中描述的數據發送爲'xs:date'類型時,永遠不會使用「UNIX格式」。隨意發佈一些重現問題的UNIX代碼,或者使用.NET代碼重現併發布該代碼。 – 2010-10-21 19:05:49

+0

不能訪問那裏的代碼。試圖重現...但不知道如何提交「自己的原始SOAP XML」的網絡服務... – Budda 2010-10-22 18:23:00