0

我有一个在 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) 有人遇到这种情况或类似情况吗?

提前致谢。

4

2 回答 2

0

对于 API - 查看NetUseEnumNetUseDel.

您看到的断开连接是由于会话空闲(没有打开句柄的会话)。我不确定这是由服务器(这表明 Netapp 和 Windows 之间存在差异)还是由客户端(您的扫描仪拥有一个打开的句柄,可能是当前目录,而资源管理器在您关闭窗口时关闭句柄)完成的)。

于 2011-02-02T00:24:26.433 回答
0

我不确定您要完成什么,但使用 NetApp 工具/API 可能更容易。对于许多管理任务,Data ONTAP PowerShell Toolkit可以真正简化事情:

PS C:\> Connect-NaController fas2040rre1
PS C:\> Get-NaCifsShare
MountPoint                                    ShareName                 Description
----------                                    ---------                 -----------
/etc                                          ETC$                      Remote Administration
/vol/vol0/home                                HOME                      Default Share
                     ... snip ...
/vol/cifs/backups                             backups

如果您不喜欢 PowerShell,您可以查看适用于 C/C++、Java、Perl 和 .Net 的 Web 服务 API 的可管理性 SDK。在这种情况下,您需要查看cifs-share-listAPI(在 7.x/8.x 之间略有不同)。

于 2011-03-04T16:59:07.553 回答