作者:Richard Marr
此疑难解答中使用的工具
- 网络监视器
此材料仅供参考。 Microsoft 不做任何明示或暗示的担保。
概述
在 SMB 2.0 之前,我们通常会通过尝试减少 FCN (文件更改通知的组合来排查这些问题,) IIS/ASP.NET 会登记或/通过 MaxCmds 和 MacMpxct 设置增加限制。
由于 SMB 2.0 协议中的体系结构更改,MaxCmds 和 MacMpxct 设置不再适用,我们通常看不到这些问题。 如果你的客户运行的是支持 2.0 的 Windows 版本,则需要验证是否已启用此功能,并且内容服务器也支持此功能并启用它。
SMB 2.0 方案
下表显示了将在不同客户端/服务器方案中使用的 SMB 版本。 请注意,在远程 IIS 内容方案中,IIS 服务器是客户端。
客户端 | 服务器 | SMB 版本 |
---|---|---|
Windows Server 2008 /Vista | Windows Server 2008 /Vista | SMB 2.0 |
Windows Server 2008 /Vista | Windows 2000、XP、2003 | SMB 1.0 |
Windows 2000、XP、2003 | Windows Server 2008 /Vista | SMB 1.0 |
Windows 2000、XP、2003 | Windows 2000、XP、2003 | SMB 1.0 |
如何判断正在使用的版本?
在网络监视器中,可以查看“协议名称”,它将列出 1.0 的 SMB 或 2.0 的 SMB2。
或者,如果你不想依赖于分析器,则可以使用此技巧,与我共享的网络团队。 从跟踪中查找 NTCreate 命令。 你可能会此 NT 创建 AndX。 在帧详细信息中展开 SMB 详细信息。 对于 SMB 1.0,NTCreate 命令偏移量将0xA2,如果0x5,则为 SMB 2.0。 . 下面是 SMB 1.0 表示形式的示例。
如果你使用的是 Windows 2008 或更高版本,并且你未使用 SMB 2.0,并且后端文件服务器支持此功能,则可以禁用它。
可以通过检查以下注册表位置来验证这一点。 HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters
用于密钥 Smb2
如果其集 = 0,则禁用 SM2.0。
SMB 1.0 方案
通常,在预 IIS 7.0 -2008 方案中或客户端 (IIS) 或服务器 (UNC 共享) 不支持 2.0 时,你会看到这些情况。 在这种情况下,需要完成尝试限制客户端 (IIS 或 asp.net) 和 /或增加支持的限制的文件更改监视器数的练习。
(MaxCmds 和 MaxMpxCt) 增加限制
每当 MaxCmds 和 MaxMpxCt 的下限生效时,客户端与服务器之间的协商限制就会生效。
例如,如果你有一个场景,即在 IIS 服务器上设置 MaxCmds = 2000,而文件服务器 MaxMPXCt = 50,50 将是有效设置。
如何知道有效设置?
显然,询问是一种方法,但有时文件服务器是第三方,我们无法验证设置。
若要验证这一点,需要在设置 SMB 连接期间捕获网络跟踪,首次访问内容时会发生此情况
- 启动网络监视器
- 重置 II 或回收应用程序池
- 通过位于远程文件服务器上的 http 访问某些内容
- 停止网络跟踪
在网络跟踪中,你要查找文件服务器响应 NEGOTIATE 函数。 在此中,你将从文件服务器中找到 MaxMpxCount 响应。 如果这低于 IIS 服务器设置,这将是有效限制,因此在上面的示例中,它将为 50
应将 MaxCMds 和 MaxMpxCt 设置为什么 #? 请参阅以下参考。
减少文件更改监视器
IIS 内容
2494628如何配置 IIS 7 以限制 UNC 共享 () https://vkbexternal.partners.extranet.microsoft.com/VKBWebService/ViewContent.aspx?scid=B;2494628
更改通知的文件访问
ASP.NET 内容
设置 Asp.net FCN 模式以减少 ASP.Net FCN 监视器