我有一个在 Windows 上运行并通过 CIFS 扫描 Netapp 文件管理器上的共享的程序。当扫描程序在 W2K3 上运行并退出时,在 Netapp 文件管理器上运行“cifs sessions -c”会显示会话已消失。当相同的扫描程序在 W2K8 上运行并退出时,上面的 Netapp 命令显示会话仍处于活动状态。扫描仪应用程序已退出,因此会话上不应再有流量。
到目前为止我所做的:1)等待(超过)cifs.idle_timeout 秒数以查看会话是否消失。它不是。2) 分析 W2K3->Netapp 和 W2K8->Netapp 之间通信的数据包跟踪。W2K3 跟踪显示 TREE_CONNECT 和 TREE_DISCONNECT,但 W2K8 跟踪仅显示 TREE_CONNECT 请求。我会验证这一点,但我认为 W2K3 上的 TREE_DISCONNECT 之后是一个 LOGOFF 请求(我相信这会导致会话结束?)。3) 要查看 Netapp 不在图片中时的情况——从 W2K8 客户端机器,我通过 windows-explorer \\C$ 访问。这会导致在线路上的 TREE_CONNECT 请求。现在我关闭了资源管理器窗口,并且 W2K3 服务器机器关闭了会话,即使 W2K8 客户端生成的线路上没有 TREE_DISCONNECT。
因此,Netapp 似乎期待 W2K8 没有发送的东西。
问题:我可以在我的扫描仪应用程序中使用特定的 API 来 i) 在我完成扫描时发送一个明确的 LOGOOFF SMB 请求吗?ii) 或者,重新使用 W2K8 客户端和 Netapp 文件管理器的现有会话进行新的扫描?ii) 有人遇到这种情况或类似情况吗?
提前致谢。