我有这段代码来获取具有特定名称的NetworkInterface
:
string myIf = "Local Area Connection";
NetworkInterface ni = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(i => i.Name == myIf);
但是,这会抛出一个NetworkInformationException: Invalid access to memory location
,ErrorCode
为998(这意味着与例外情况完全相同)。
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上,网络接口确实存在,并且应用程序已经以管理员身份运行。
什么可能导致出现此异常,是否有任何可以解决的问题?
答案 0 :(得分:0)
我在32位网站上遇到了同样的问题,并且按照以下步骤解决了我的问题。