我遇到一个c# WebApplication调用WCF WebService c#的问题。当我用方法调用webservice时:
WebResponse myWebResponse = request.GetResponse();
我有一个异常抛出:"底层连接已关闭:在接收时发生意外错误"事情是,我也可以调试WebService端,所以我知道什么是作为响应返回,我注意到,我有这个异常只有当有一个DateTime未初始化的类型的响应:"1/1/0001 12:00:00 AM"。
你可以告诉我初始化我的日期,但问题是这个WebService已经在生产中工作了,在它的当前状态下,这些日期。它也适用于在美国调试项目的其他开发人员(我在法国(可能是问题?))
我认为我的工作环境和美国同事的工作环境唯一不同的是国家…^^我们都在WIndows 7 SP1上使用。net Framework 4.5.1和visual studio 2013,这对他们来说是完全正常的,他们告诉我们他们也有那些未初始化的日期(没什么奇怪的,因为我们使用相同的源代码),但他们确实在客户端得到了响应。
我一直在网上搜索,试图找到类似的东西,但似乎没有什么像它,所以如果有人遇到这种麻烦,我请你回答我:)
谢谢。
jdweng的回答:
DateTime中的第0天是1899年12月30日午夜,第1天是1900年1月1日,跳过12月31日。DateTime构造函数默认为第1天(而不是第0天),即1月1日。问题是如果你从1900年1月1日的午夜减去5个小时你会得到1899年12月30日晚上7点还是1899年12月31日晚上7点?如果你得到12月31日,那么你有一个错误。我假设在法国,您正在调用DateTime的构造函数,然后代码以某种方式减去法国和纽约之间的时差5小时。