WCF服务无法返回1/1/0001 DateTime

时间:2016-07-02 20:33:00

标签: c# .net web-services wcf datetime

我遇到了一个调用WCF WebService C#的C#WebApplication的问题。 当我使用以下方法调用webservice时:

WebResponse myWebResponse = request.GetResponse();

我抛出异常:“底层连接已关闭:接收时发生意外错误” 问题是我也可以调试WebService Side,所以我知道什么是作为Response返回的,我注意到只有在类型的响应中没有初始化DateTime时才会出现此异常:“1/1/0001 12 :00:00 AM“。

那么你可以告诉我当时初始化我的日期,但问题是这个WebService已经在生产中以这种日期在当前状态下工作。它也适用于调试美国项目的其他开发人员(我在法国(可能是问题?))

我在工作环境和美国同事之间看到的唯一不同的是国家...... ^^ 我们都在WIndows 7 SP1上使用.NET Framework 4.5.1和visual studio 2013并且它完全适用于他们,他们告诉他们他们也没有初始化这些日期(因为我们使用相同的源代码并不奇怪)但他们确实得到了在客户端做出回应。

我一直在网上搜索试图找到类似的东西,但似乎没有什么比这更好的了,所以如果有人遇到过这种麻烦我请你回答我:)

谢谢。

1 个答案:

答案 0 :(得分:0)

来自jdweng的回答:

DateTime中的第0天是1899年12月30日午夜,第1天是1900年1月1日跳过12月31日.DateTime构造函数默认是第1天(不是第0天),即1月1日。问题是如果你减去5小时1900年1月1日午夜你会得到1899年12月30日晚上7点,还是1899年12月31日晚上7点?如果你在12月31日到达那么你就会出错。我假设你在法国你正在调用DateTime的构造函数,然后不知何故代码减去法国和纽约之间5小时的时差。