У меня есть программа, которая работает в Windows и сканирует общие ресурсы в файле Netapp через CIFS. Когда сканер запускается на W2K3 и завершает работу, запуск "cifs session -c" в файлере NetApp показывает, что сеанс пропал. Когда тот же сканер запускается на W2K8 и завершается, приведенная выше команда Netapp показывает, что сеанс все еще активен. Приложение сканера уже завершило работу, поэтому в сеансе больше не должно быть трафика.
Что я сделал до сих пор: 1) подождал (более) числа секунд cifs.idle_timeout, чтобы увидеть, уходит ли сеанс. Это не. 2) проанализированы трассировки пакетов для связи между W2K3->Netapp и W2K8->Netapp. Трассировка W2K3 показывает TREE_CONNECT и TREE_DISCONNECT, но трассировка W2K8 показывает только запрос TREE_CONNECT. Я проверю это, но я думаю, что за TREE_DISCONNECT на W2K3 следует запрос LOGOFF (который, как я полагаю, приводит к завершению сеанса?). 3) Чтобы посмотреть, как все будет выглядеть, когда NetApp не на картинке - с машины с W2K8-клиентом я получил доступ через Windows-проводник \\C$. Это вызывает запрос TREE_CONNECT в сети. Теперь я закрыл окно проводника, и машина с сервером W2K3 закрыла сеанс, хотя на проводе, сгенерированном клиентом W2K8, не было TREE_DISCONNECT.
Похоже, Netapp ожидает чего-то, чего W2K8 не отправляет.
Вопрос: Есть ли специальный API, который я могу использовать в своем приложении сканера, чтобы i) отправить явный SMB-запрос LOGOFF после завершения сканирования? ii) или повторно использовать существующий сеанс ч/б клиента W2K8 и файлового устройства NetApp для нового сканирования? ii) кто-нибудь сталкивается с этим или подобными сценариями?
Заранее спасибо.