Windows游戏服务器缺少.NET3.5环境依赖而诱发的时间戳转换问题
1、什么是DateTimeOffset?什么是UtcNow?
关于DateTimeOffset和UtcNow详情可参考:https://www.cnblogs.com/redmoon/p/5104098.html
2、游戏业务异常表现
游戏业务在做update操作时,依赖本地时间转换的时间戳,但在实际运行中发现,本地环境运行游戏程序,时间戳生成的时间间隔是1-3ms,而在新服务器环境运行的时间间隔是15-20ms。如下图:
测试代码用例C#:
using System; using System.Threading; namespace test { internal static class Program { private static void Main(string[] args) { int i = 0; while (true) { Thread.Sleep(1); Console.WriteLine(new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds()); if (i == 100) { break; } i++; } Console.ReadLine(); } } }
已经封装可执行exe程序:test.zip
3、安装.NET3.5相关程序依赖
(1)点击Windows窗口,右侧找到服务器管理器
(2)点击仪表盘/添加角色和功能
以下操作默认即可,下一步
(3)选择Web服务器(IIS)
(4)选择.NET Framework3.5功能
以下操作默认即可,下一步
选择Web服务器(IIS)→应用程序开发(该部分全选)
(5)点击安装
(6)启动ASP.NET State Service
(7)效果验证
作者:UStarGao
链接:https://www.starcto.com/application_of_operational/314.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2023-05-07如何快速部署ChatGPT应用并绕开限制
- 2021-04-12MySQL删除数据空间没有释放-碎片
- 2021-07-13MongoDB主从复制搭建教程-单机热备
- 2021-01-27数据库宕机以后恢复的过程?如何保证事务的ACID特性?
- 2021-07-21MySQL Binlog日志解析方法