使用简单的Java类获取Windows 2008 R2 Server Core计算机上的网络接口列表会返回数百个结果。
使用的示例代码符合教程:http://docs.oracle.com/javase/tutorial/networking/nifs/listing.html
在Windows 2008 Server Core R2上,为注册表项生成了数百个GUID:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
Sample:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{001E146A-E6BB-424E-ACD9-156527A67C59}\Connection]
"DefaultNameResourceId"=dword:00000709
"DefaultNameIndex"=dword:00000247
"Name"="Local Area Connection* 583"
有数百个,GetNetworkInterfaces列出所有这些 - 例如对于上面的那个显示“Name = net583”。这些不是实际的网络接口,处理所有这些都需要很长时间。
安装SP1可防止生成更多GUID,但即使我从注册表中删除了不需要的GUID,GetNetworkInterfaces仍会列出它们。
除了GetNetworkInterfaces()检索网络接口信息的注册表项之外,Windows机器上还有其他地方吗?
我们有一个使用GetNetworkInterfaces的Web应用程序,由于处理所有这些不存在的网络接口的延迟,Web服务器最多可能需要10分钟才能启动。