我有一段代码来获得一个具有特定名称的NetworkInterface
:
string myIf = "Local Area Connection";
NetworkInterface ni = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(i => i.Name == myIf);
但是,这会抛出一个ErrorCode
为998的ErrorCode
(这意味着与异常所述的完全相同)。
System.Net.NetworkInformation.NetworkInformationException was unhandled
ErrorCode=998
HResult=-2147467259
Message=Invalid access to memory location
NativeErrorCode=998
Source=System
StackTrace:
at System.Net.NetworkInformation.SystemNetworkInterface.GetNetworkInterfaces()
at System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
at MyApp.CheckIfNetworkOnline(Object state)
at System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback()
InnerException:
.NET文档声称,这是由于“Windows函数调用失败”或“当调用Win32函数失败时”造成的。
这是在.NET 4.5.2上,网络接口确实存在,并且应用程序已经作为管理员运行。
是什么原因导致这个异常出现,以及有什么可以做的事情来修复它?
发布于 2018-11-18 05:44:52
我的32位站点也有同样的问题,下面的步骤解决了我的问题。
https://stackoverflow.com/questions/44332200
复制相似问题