使用WCF的时区混乱

Sha*_*ica 6 c# wcf timezone

我的SaaS系统遍布全球,拥有多个客户.但是,每个客户端只在一个时区.客户端和我的中央服务器之间的通信使用WCF完成.

现在系统有一个调度方面,时间必须根据当地时间进行存储.但我发现当我发送一个标记有该DataContract属性DataMember的类,DateTime通过WCF接口具有类型属性时,系统变得过于聪明一半,并且它将时间转换为服务器时间.OTOH,如果我直接通过WCF接口传递DateTime值作为参数,则时间是逐字的,作为客户端时间.

这让我很头疼.有什么我可以在某处配置,以便WCF服务不会任何时间转换为本地(服务器)时间?

编辑:嗯,我不知道我做了什么,但我正在研究一些相关的东西,问题似乎只是消失了!所以我很想尝试你的答案,但我现在实际上无法重现我自己的问题......如果我有时间进行学术练习,我会更深入,但是现在,如果没有打破...

Six*_*aez 9

WCF没有任何能够自动将时间值转换为UTC时间的功能.您可以使用并存储应用程序的UTC时间.当然,当您在UI中显示这些值时,您需要撤消此转换.

  • 我想你们两个都误解了我:我不想在内部保留不同的时区; WCF自动转换它们,这就是问题所在!但正如我在编辑中所说的那样 - 无论如何我似乎无意中解决了这个问题...... (2认同)