Windows 共享:指定的网络名称不再可用

Windows 共享:指定的网络名称不再可用

我们有一个 EMC NX4 SAN 盒,为许多 Windows Server 2008 R2 应用服务器提供 CIFS 共享。应用服务器使用 CIFS 共享来提供大量图像文件(共享上约 2500 ops/sec),但 SAN 和应用服务器均未显示任何明显的压力迹象。

偶尔,应用服务器会突然断开与 SAN 的连接。任何尝试从 SAN 提供文件的 .NET 代码都会失败,并出现以下错误:

System.IO.IOException: The specified network name is no longer available

如果我通过 RDP 连接到应用服务器并尝试通过资源管理器访问“\san-name”,我会得到同样的错误。所有其他应用服务器都可以正常访问。我也可以完美访问“\ip-of-san”,ping 也正常。

重新启动应用服务器可以解决问题,但是这是一种比较激烈的解决问题的措施,因为看起来 SAN 工作正常并且计算机可以访问它 - 只是看起来“\san-name”访问已经失败了。

上周,两台不同的应用服务器都出现了这种情况,因此我不怀疑单个应用服务器是导致问题的原因。暂时忽略原因 - 如何在不重启机器的情况下恢复“\san-name”连接?我能以某种方式查询出了什么问题吗?

事件日志没有显示任何内容(除了由该问题导致的相关 ASP.NET 错误),无论是在应用服务器还是在 SAN 上。

更新:
根据建议,下次我将尝试重新启动 Workstation 服务,看看是否有助于解决问题。这绝对不是修复,但比我现在所做的重新启动整个机器要快得多。有什么方法可以查询 Workstation 服务维护的连接状态?

更新 2:
确认重新启动 Workstation 服务“修复”了该问题。下一步是尝试更改注册表以提高 MaxCmds 值。无法确认这是否是问题所在,只能假设它长时间运行而没有问题。

答案1

这听起来像是 MaxCmds 已经用完了。这里有两篇关于此问题的好文章:这里这里

现在来改变它。创建一个名为 update.reg 的文件,并将以下内容放入其中:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters] 
"MaxCmds"=dword:00000800 

保存然后双击并接受提示。需要重新启动。

答案2

也许重新启动应用服务器上的工作站服务!

答案3

我以前也遇到过类似的情况,不过不是在 EMC 后端。对于用户空间应用程序,强制关闭与远程服务器的连接并重新打开它将恢复,不过您可能需要尝试几次才能恢复。对于服务器空间应用程序,回收该服务的应用程序池是可行的。如果失败,回收工作站服务可以避免重新启动,但这几乎同样激烈。

答案4

这可能是名称解析问题吗?您可以检查一下您的 DNS 服务器吗?如果 DNS 服务器不允许解析名称,则在重新启动应用服务器后,它将允许访问。

我也遇到过同样的问题,一些工作站用户抱怨他们无法访问存储在另一台服务器上的应用程序,我们也尝试使用服务器 IP 进行访问,结果可行,但使用名称则不行,因此我们检查了 DNS。由于我们有静态 IP 网络,因此我们在应用程序中进行了更改,以便使用 IP 地址访问另一台服务器。

请告诉我我的建议是否对您有用。

相关内容