簡體   English   中英

如何重用現有的CIFS會話或以編程方式明確終止一個會話(從W2K8到Netapp)?

[英]How can I re-use an existing CIFS session or explicitly terminate one programmatically (W2K8 to Netapp)?

我有一個程序可以在Windows上運行,並通過CIFS掃描Netapp文件管理器上的共享。 當掃描程序在W2K3上運行並退出時,在Netapp文件管理器上運行“ cifs session -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請求。 現在,我關閉了瀏覽器窗口,並且即使W2K8客戶端生成的線路上沒有TREE_DISCONNECT,W2K3服務器計算機也關閉了會話。

因此,似乎Netapp期望W2K8無法發送。

問題:我可以在掃描儀應用程序中使用特定的API來完成以下操作:i)完成掃描后發送明確的LOGOFF SMB請求? ii)還是重新使用W2K8客戶端和Netapp文件管理器的現有會話進行新的掃描? ii)有人面對這種情況或類似情況嗎?

提前致謝。

對於API,請查看NetUseEnumNetUseDel

您看到的斷開連接是由於空閑會話(沒有打開的句柄的會話)引起的。 我不確定這是由服務器(這表示Netapp和Windows之間存在差異)還是由客戶端(您的掃描儀擁有打開的句柄,也許是當前目錄)完成,而瀏覽器在關閉窗口時關閉了句柄)。

我不確定您要完成什么,但是使用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-list API(在7.x / 8.x之間稍有不同)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM