[英]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,請查看NetUseEnum和NetUseDel
。
您看到的斷開連接是由於空閑會話(沒有打開的句柄的會話)引起的。 我不確定這是由服務器(這表示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.