2011-02-01 43 views
0

我有一個在Windows上運行的程序,並通過CIFS掃描Netapp文件管理器上的共享。當掃描程序在W2K3上運行並退出時,在Netapp文件管理器上運行「cifs sessions -c」會顯示會話已結束。當相同的掃描程序在W2K8上運行並退出時,上述Netapp命令顯示會話仍處於活動狀態。掃描儀應用程序已經退出,因此應用程序中不應再有流量。如何重新使用現有的CIFS會話或以編程方式顯式終止(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)當我完成掃描時發送明確的LOGOFF SMB請求? ii)或者,重新使用W2K8客戶端和Netapp文件管理器進行新掃描的現有會話? ii)任何人都面臨這種或類似的情況?

在此先感謝。

回答

0

對於API - 請看NetUseEnumNetUseDel

您看到的斷開連接是由於空閒會話(沒有打開的句柄的會話)。我不確定這是否由服務器完成(這將表明Netapp和Windows之間的區別),或者客戶端(您的掃描程序保存打開的句柄,也許是當前目錄,而Explorer在關閉窗口時關閉句柄)。

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是不是你的東西,你可以去看看Manageability SDK的Web服務API,以C/C++,Java和Perl的和.Net。在這種情況下,你會想看看cifs-share-list API(在7.x/8.x之間略有不同)。

相關問題