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云平台推荐
随便看看
- 2021-08-12开源分布式爬虫管理平台Crawlab容器化部署
- 2021-02-11Linux 安装Python2与Python3
- 2021-07-03MySQL安全插件-密码复杂度+密码过期策略+登录失败处理
- 2021-11-22Windows远程桌面多个用户同时使用Chrome浏览器
- 2022-05-27MongoDB慢查询日志之Profiling配置