Troubleshoot SMB NetBIOS/FCN limit issues with remote content
Applies to: Internet Information Services
This article introduces how to troubleshoot SMB NetBIOS/FCN limit issues with remote content.
Before SMB 2.0 we typically would troubleshoot these issues by trying reducing the File Change Notifications (FCNs) IIS/ASP.NET would enlist in and / or increasing the limits via the MaxCmds and the MacMpxct settings.
Due to an architecture change in SMB 2.0 protocol, the MaxCmds and the MacMpxct settings no longer apply, and we typically do not see these issues. If you're' running a version of Windows that supports SMB 2.0, verify if this is enabled and the content server also supports this and has it enabled.
The following table shows the version of SMB that will be used in different client/server scenarios. Note that in a remote IIS content scenario the IIS server is the client.
Client | Server | SMB Version |
---|---|---|
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 |
To tell what version is being used, use one of these methods:
In network monitor, check the Protocol Name and it will list either SMB for 1.0 or SMB2 for 2.0.
If you don't want to depend on the Parsers, locate an
NTCreate
command from the trace. You might see NT Create AndX. In the frame details expand the SMB details. For SMB 1.0, theNTCreate
command offset will be 0xA2 and in SMB 2.0 if will be 0x5. The following screenshot shows a sample of an SMB 1.0 representation.If you are using Windows 2008 or later, and you are not using SMB 2.0, and the backend files server supports this, then it could be disabled. It can be verified by checking the registry location
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters
for a keySmb2
. If it's set to 0 then SM2.0 is disabled.
You are typically going to see these in Pre IIS 7.0 -2008 scenarios or when either the client (IIS) or server (UNC share) does not support SMB 2.0. In this case, try to use any or both of the following methods:
- Limit the number of file change monitors that are created by the client (IIS or asp.net).
- Increase the limits supported.
The limit is a negotiated limit between the client and the server, whenever the lower of MaxCmds and MaxMpxCt will take effect.
For example, if you have a scenario where on the IIS server you set MaxCmds = 2000
and on the File Server MaxMPXCt = 50
, 50 will be the effective setting.
Obviously asking is one way, but sometimes the file servers are 3rd party and we cannot verify the settings.
Take the following steps to get the effective setting. You need to capture a network trace during the setup of the SMB connection. It occurs when the content is accessed for the first time.
- Start Network Monitor.
- Reset IIs or Recycling the application pool.
- Access some content over HTTP that resides on the remote file server.
- Stop the network trace.
- In the network trace, look for the files servers response to the NEGOTIATE function.
- Find the MaxMpxCount response from the file Server.
- If the number is lower than the IIS server setting, it's the effective limit.
See Tuning the Servers for UNC Content (IIS 6.0).
For ASP.NET Content, see Set Asp.net FCN Mode to reduce ASP.Net FCN monitors.