У меня есть программа, которая работает в 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-explorer \\ C $. Это вызывает запрос TREE_CONNECT на проводе. Теперь я закрыл окно обозревателя, и компьютер с W2K3-сервером закрыл сеанс, даже если на проводе, сгенерированном W2K8-клиентом, не было TREE_DISCONNECT.
Похоже, что Netapp ожидает чего-то, что W2K8 не отправляет.
Вопрос. Существует ли конкретный API, который я могу использовать в своем приложении для сканирования?
я) отправить явный запрос LOGOFF SMB, когда я закончу сканирование?
ii) или повторно использовать существующий сеанс ч / б W2K8-клиент и файлер Netapp для нового сканирования?
ii) кто-нибудь сталкивался с подобными или похожими сценариями?
Заранее спасибо.