代码拉取完成,页面将自动刷新
背景:通过1.6版本构建的socket服务端,以windows服务的形式安装,在部分windows10的机器上,无法正常创建端口监听,目前已排除以下问题,但还没找到问题的原因,期望大佬给些建议。
问题已解决:最终确认问题为由于对应系统的注册表损坏,在通过以下代码获取对象计数器时出现错误。
var processCategory = new PerformanceCounterCategory("Process");
var runnedInstances = processCategory.GetInstanceNames();
可能是项目在日志收集这块做的不够好,本应该抛出的异常错误未捕捉到,后面通过重新编写了一个完全脱离业务的测试程序才收集到错误信息,错误信息如下:
System.InvalidOperationException: 类别不存在。
在 System.Diagnostics.PerformanceCounterLib.GetCategorySample(String machine, String category)
在 System.Diagnostics.PerformanceCounterCategory.GetCounterInstances(String categoryName, String machineName)
在 System.Diagnostics.PerformanceCounterCategory.GetInstanceNames()
在 SuperSocket.SocketEngine.ProcessPerformanceCounterHelper.GetPerformanceCounterInstanceName(Process process)
在 SuperSocket.SocketEngine.ProcessPerformanceCounterHelper.SetupPerformanceCounters()
在 SuperSocket.SocketEngine.ProcessPerformanceCounterHelper..ctor(Process process)
在 SuperSocket.SocketEngine.PerformanceMonitor..ctor(IRootConfig config, IEnumerable`1 appServers, IWorkItem serverManager, ILogFactory logFactory)
在 SuperSocket.SocketEngine.DefaultBootstrap.Initialize(Func`2 serverConfigResolver, ILogFactory logFactory)
在 SuperSocket.SocketEngine.DefaultBootstrap.Initialize(Func`2 serverConfigResolver)
在 SuperSocket.SocketEngine.DefaultBootstrap.Initialize()
解决方案就是利用管理员权限重新计算计数器,具体执行步骤为:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论