通过Windows API函数检索网络共享列表NetShareEnum或WNetEnumResource最多需要60(!!!)秒才能完成请求。也许有人知道它为什么这么慢?也许有可能使用一些API /库(如SMB)以合理的速度枚举共享?为什么网络共享枚举在Windows上很慢?
2
A
回答
1
至于为什么速度如此之慢,如果主机因任何原因(例如要求登录凭据)不可用或不响应,Windows将等待超出超时限制(对于网络中已知的每个共享(可以是每个主机多个)。 Windows的默认超时时间非常长。
将超时减少到50毫秒(在局域网中绝不能超过)可能对此有所帮助,最终取决于测试的主机数量。
对于API的替代方法,我无法帮助,抱歉。
+0
这60秒用于响应完美的计算机并显示共享列表。什么“证书”问题可能会触发超时? – grigoryvp 2011-02-07 08:39:05
1
你可能想要尝试一些东西,比如用Linux枚举相同的共享(你可以使用LiveCD)。在我的测试中,我看到路由器也被要求提供可能的网络共享(我的路由器运行Linux,这是我的ISP给我的,所以它可能很常见)。
因此,也许Windows会长时间询问路由器是否有网络共享(这种情况不应该发生......),并等待它同步响应共享。
(谁设计这个API的同步?)
相关问题
- 1. 使用C#枚举网络共享
- 2. 为什么Python的枚举太慢?
- 3. 枚举C++/MFC中的网络共享目录
- 4. 枚举Windows网络共享及其中的所有自定义权限
- 5. 枚举林中的域(windows网络)
- 6. 微软访问网络共享缓慢
- 7. 为什么Azure共享网站比免费网站慢
- 8. 用低特权枚举Windows上的共享文件夹
- 9. 为什么枚举包括可枚举
- 10. 为什么直接输出到网络共享比缓冲间隔慢得多?
- 11. 为什么枚举会议给在Windows 7上的额外?
- 12. 为什么只读sqlce在windows phone 7上很慢?
- 13. 为什么PostgreSQL在Windows上这么慢?
- 14. Windows域中的网络共享
- 15. 枚举网络会话
- 16. 在网络共享上移动文件
- 17. 在网络上重新共享文件
- 18. 在网络共享上使用sqlite
- 19. 为什么ASP.NET网站在网络连接丢失后会变得很慢?
- 20. 为什么CreateFile无法通过网络共享打开文件?
- 21. 什么枚举
- 22. 慢linq枚举
- 23. 登录为这个进程在Windows网络共享(SMB)仅
- 24. 为什么python在windows上慢得多?
- 25. 与WCF服务共享枚举
- 26. 使用PowerShell枚举Linux的SMB共享
- 27. 包括枚举从域GWT共享类
- 28. 枚举之间的共享方法
- 29. MySQL:我可以共享枚举吗?
- 30. python os.path.isdir()在windows上很慢
说实话,因为Windows是愚蠢的。 – 2012-08-04 13:26:37