Hardware.Info本地开发运行没问题,放到服务器上抛异常


利用Hardware.info获取设备硬件信息:

C# 全选
var hardwareInfo = new HardwareInfo();
hardwareInfo.RefreshAll(); // 刷新所有设备信息
MachineInfo info = new MachineInfo()
{
   // CPU信息
   CpuList = hardwareInfo.CpuList.Select(s => new MachineInfo.CPUInfo()
   {
	   Name = s.Name,
	   NumberOfCores = s.NumberOfCores,
	   NumberOfLogicalProcessors = s.NumberOfLogicalProcessors
   }).ToList(),

   // 内存信息
   Memory = new MachineInfo.MemoryInfo()
   {
	   TotalPhysical = hardwareInfo.MemoryStatus.TotalPhysical,
	   MemoryList = hardwareInfo.MemoryList.Select(s => new MachineInfo.MemoryItem()
	   {
		   Capacity = s.Capacity,
		   FormFactor = s.FormFactor.ToString(),
		   Manufacturer = s.Manufacturer,
		   PartNumber = s.PartNumber,
		   SerialNumber = s.SerialNumber,
		   Speed = s.Speed
	   }).ToList()
   },

   // 主板信息
   MotherboardList = hardwareInfo.MotherboardList.Select(s => new MachineInfo.MotherboardInfo()
   {
	   Manufacturer = s.Manufacturer,
	   Product = s.Product,
	   SerialNumber = s.SerialNumber
   }).ToList(),

   // 网卡信息
   NetworkAdapterList = hardwareInfo.NetworkAdapterList.Select(s => new MachineInfo.NetworkInfo()
   {
	   ProductName = s.ProductName,
	   MACAddress = s.MACAddress
   }).ToList(),

   // 系统信息
   OperatingSystem = new MachineInfo.OSInfo()
   {
	   Name = hardwareInfo.OperatingSystem.Name,
	   VersionString = hardwareInfo.OperatingSystem.VersionString
   }
};

本地运行没问题,但是在服务器上运行,就会抛异常,抓取异常信息如下:

Exception:【异常类型】:ManagementException
【异常信息】:无效查询
【堆栈调用】:   at System.Management.ManagementException.ThrowWithExtendedInfo(Managem
entStatus errorCode)
   at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.Mo
veNext()
   at Hardware.Info.Windows.HardwareInfoRetrieval.GetMonitorList()
   at Hardware.Info.HardwareInfo.RefreshMonitorList()
   at Hardware.Info.HardwareInfo.RefreshAll()
   at JOCAPI.Core.Lic.MachineCode.GetMachineCodeString()
   at JOCAPI.Core.Extensions.Extention.GA7k6XjmWOgrNvQ7HFN()
   at JOCAPI.Core.Extensions.Extention.ValidateLic(IConfiguration configuration)
 
【异常方法】:Void ThrowWithExtendedInfo(System.Management.ManagementStatus)

原因分析

猜测是服务器通过远程桌面管理的,并没有连接显示器。所以在调用HardwareInfoRefreshMonitorList方法时候发生异常了

解决方案

慎用HardwareInfoRefreshAll方法

改为只刷新自己需要获取设备信息的方法

代码修改为:程序正常运行

C# 全选
var hardwareInfo = new HardwareInfo();
//hardwareInfo.RefreshAll(); // 必须要这一行代码,不然不会更新,服务器没有显示器,会抛异常
hardwareInfo.RefreshCPUList(); // CPU 
hardwareInfo.RefreshMemoryStatus(); // 内存状态
hardwareInfo.RefreshMemoryList(); // 内存列表
hardwareInfo.RefreshMotherboardList(); // 主板
hardwareInfo.RefreshNetworkAdapterList(); // 网卡
hardwareInfo.RefreshOperatingSystem(); // 系统
hardwareInfo.RefreshDriveList(); // 硬盘

 

 

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:vue-plugin-hiprint
下一篇:如何在 Entity Framework 中自动截断超长字符串并避免异常
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

Hardware.Info本地开发运行问题服务器异常
WPF开发随笔收录-本地日志LogUtil类
.net Core项目 IIS部署运行异常信息输出
C#错误异常日志记录文件
VS调试运行ASP.NET MVC项目,传静态资源图片404问题,Debug路径
Python使用html解析包Requests-html运行py文件问题,Pyinstaller打包exe后运行报错
mysql服务器运行环境要求
.NET中大型项目开发必备(10)--图片的裁剪、缩、与加水印
记一次本地正常线接口报404
使用.NET 6开发TodoList应用(8)——实现全局异常处理
Epicor传文件目录的获取,服务器文件路径获取
网站迁移纪实:从Web Form Asp.Net Core (Abp vNext 自定义开发
服务器ntlmssp攻击防御措施,windows server大量审核失败问题
未在本地计算机注册"Microsoft.ACE.OLEDB.12.0"提供程序
CMD运行命令程序自动暂停问题解决
Python使用UUID模块云服务器获取MAC地址,重启后就不一样了
git版本回退后推送服务器
C#常见异常列表
Python windows服务报错: 1063 StartServiceCtrlDispatcher 服务进程无法连接服务控制器
一劳永逸,解决.NET发布云服务器的时区问题

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码