我有一個在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)任何人都面臨這種或類似的情況?
在此先感謝。