Web Service 调用日期出现偏差的原因
最近使用.net 的Web Service实现了一些代码,但是在客户机器上面执行的过程中,发现系统提交的日期总是
比真是的日期少了12个小时,在开发环境中测试没有任何问题。
例如:北京时间2007年4月28日9点35分,写入到数据库之后,则变成了2007年4月27日21点35分。
首先,联想到使用Delphi连接Web Service曾经产生的类似问题,是不是Web Service协议调用的时候,需要特
别的指出时间和GMT时间的差距呢?本身这个问题在以前的调用中就没有发生过,所以可能性几乎没有。那会不
会是Web.config的配置改变了系统的默认参数呢?查看Web Service的Web.config文件,发现Request和
Response的编码都是utf-8,这个也不存在问题,和我们自己的开发欢迎是一致的。
会不会是客户的那台机器出现了问题呢?比如说他自己机器的时间配置出现了问题?查看了客户机的设置,没
有发现什么异常,都是Windows默认的设置值。找了另外一台服务器来测试,配置也是默认值,写入进去的数据
也是错误的。这样就可以认为是服务器的设置问题了。
打开服务器的时间设置,看到的时间看上去是正常的,打开“时区”选项卡,发现使用的是GMT-5,美国东部时
间,哈哈,问题就在这里,修改为GMT+8,再看一下Windows任务栏的时间,变成了和现在相差12个小时的凌晨4
点,重新修改为正确的时间,问题解决。
看来很多事情都是有解决简单办法,另外一个方面,服务器的管理非常重要,平时我们自己使用的PC机时间错
了也无所谓,但是这个服务器里面存储了数据,数据将会发生错误。
PS: 和同事出差,他睡觉在打呼噜,俺自己谁不着,只有上网来溜达一会。
比真是的日期少了12个小时,在开发环境中测试没有任何问题。
例如:北京时间2007年4月28日9点35分,写入到数据库之后,则变成了2007年4月27日21点35分。
首先,联想到使用Delphi连接Web Service曾经产生的类似问题,是不是Web Service协议调用的时候,需要特
别的指出时间和GMT时间的差距呢?本身这个问题在以前的调用中就没有发生过,所以可能性几乎没有。那会不
会是Web.config的配置改变了系统的默认参数呢?查看Web Service的Web.config文件,发现Request和
Response的编码都是utf-8,这个也不存在问题,和我们自己的开发欢迎是一致的。
会不会是客户的那台机器出现了问题呢?比如说他自己机器的时间配置出现了问题?查看了客户机的设置,没
有发现什么异常,都是Windows默认的设置值。找了另外一台服务器来测试,配置也是默认值,写入进去的数据
也是错误的。这样就可以认为是服务器的设置问题了。
打开服务器的时间设置,看到的时间看上去是正常的,打开“时区”选项卡,发现使用的是GMT-5,美国东部时
间,哈哈,问题就在这里,修改为GMT+8,再看一下Windows任务栏的时间,变成了和现在相差12个小时的凌晨4
点,重新修改为正确的时间,问题解决。
看来很多事情都是有解决简单办法,另外一个方面,服务器的管理非常重要,平时我们自己使用的PC机时间错
了也无所谓,但是这个服务器里面存储了数据,数据将会发生错误。
PS: 和同事出差,他睡觉在打呼噜,俺自己谁不着,只有上网来溜达一会。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.