2010-10-21 67 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