Введение
НаWindows 10 (обновление 1703 или 1809), приложения, запущенные с сетевого диска, аварийно завершают работу после определенного периода60к95минут. На Windows 7 приложения работают безупречно.
Поведение находилось под лабораторным наблюдением в течение нескольких недель, в ходе которого были задействованы как 32-битные, так и 16-битные приложения.
Симптомы
- Все попытки запустить приложения с сетевого диска завершаются успешно;
- Все затронутые 32-битные приложения EXE/DLL (Powerbuilder) зарегистрировал0xc0000006исключение наПросмотрщик событий.
- В 16-битном приложении (Foxpro 2.6 для MS-DOS), возникает ошибка "Невозможно обработать ошибку" или просто ломается и уходит.
- Иногда "Фатальная ошибка 104 при попытке сообщить об ошибке 104" произошло.
- Сбой происходит даже при непрерывном использовании (не происходит существенных периодов бездействия);
- Сбой произошел толькоВиндовс 1032-/64-разрядные рабочие станции с обновлением 1703 или 1809. Рабочие станции с Windows 7 работали нормально.
- Собранный анализ указывает на «безопасный» случайный период от60к95минут между первым запуском и остановкой;
- С использованиемWireshark, ошибкаSTATUS_NETWORK_SESSION_EXPIREDпостоянно регистрируется при возникновении сбоев в некоторых сценариях.
- Когда несколько экземпляров были запущены в разное время, все они вышли из строя в одну и ту же секунду;
- Запуск экземпляра с локального диска выполняется нормально, даже после возможного сбоя экземпляров, запущенных с сетевого диска;
- Все затронутые сайты серверы работают наWindows 2016 Сервер;
- Сетевой диск выглядит работоспособным после сбоя;
- Сетевое подключение никогда не прерывается (непрерывные PING-запросы) до, во время или после сбоев в работе приложений;
Протестированные конфигурации лабораторных систем
- Основы Windows Server 2016 (1607)
- Windows 10 32 бит / 64 бит (обновление 1703 / 1809)
- Windows 7 (только 32-разрядная версия)
- Кабель
- Выключатель
Конфигурация сети сервера
Результаты Get-SMBServerConfiguration
команды Powershell:
AnnounceComment :
AnnounceServer : False
AsynchronousCredits : 512
AuditSmb1Access : False
AutoDisconnectTimeout : 999999
AutoShareServer : True
AutoShareWorkstation : True
CachedOpenLimit : 10
DurableHandleV2TimeoutInSeconds : 180
EnableAuthenticateUserSharing : False
EnableDownlevelTimewarp : False
EnableForcedLogoff : True
EnableLeasing : False
EnableMultiChannel : True
EnableOplocks : True
EnableSecuritySignature : True
EnableSMB1Protocol : True
EnableSMB2Protocol : True
EnableStrictNameChecking : True
EncryptData : False
IrpStackSize : 15
KeepAliveTime : 2
MaxChannelPerSession : 32
MaxMpxCount : 50
MaxSessionPerConnection : 16384
MaxThreadsPerQueue : 20
MaxWorkItems : 1
NullSessionPipes : netlogon,samr,lsarpc
NullSessionShares :
OplockBreakWait : 35
PendingClientTimeoutInSeconds : 120
RejectUnencryptedAccess : True
RequireSecuritySignature : True
ServerHidden : True
Smb2CreditsMax : 8192
Smb2CreditsMin : 512
SmbServerNameHardeningLevel : 0
TreatHostAsStableStorage : False
ValidateAliasNotCircular : True
ValidateShareScope : True
ValidateShareScopeNotAliased : True
ValidateTargetName : True
Конфигурация сети рабочей станции
Результаты Get-SMBClientConfiguration
команды Powershell:
ConnectionCountPerRssNetworkInterface : 4
DirectoryCacheEntriesMax : 16
DirectoryCacheEntrySizeMax : 65536
DirectoryCacheLifetime : 0
DormantFileLimit : 1023
EnableBandwidthThrottling : True
EnableByteRangeLockingOnReadOnlyFiles : True
EnableInsecureGuestLogons : True
EnableLargeMtu : True
EnableLoadBalanceScaleOut : True
EnableMultiChannel : True
EnableSecuritySignature : False
ExtendedSessionTimeout : 1000
FileInfoCacheEntriesMax : 64
FileInfoCacheLifetime : 0
FileNotFoundCacheEntriesMax : 128
FileNotFoundCacheLifetime : 5
KeepConn : 65535
MaxCmds : 50
MaximumConnectionCountPerServer : 32
OplocksDisabled : False
RequireSecuritySignature : False
SessionTimeout : 65535
UseOpportunisticLocking : False
WindowSizeThreshold : 8
Что мы уже сделали
- ПровереноПросмотрщик событий, даже для подсобытий SMBCLIENT и SMBSERVER, но не удалось найти корреляцию между событиями и сбоем приложения.
- Попробовал настроить SMBSessionTimeoutнастройка на65535на рабочей станции выполните перезагрузку, как указаноГаррик;
- Попробовал настроить SMBKeepconнастройка на65535на рабочей станции с последующей перезагрузкой;
- Отключил автоотключение (изменил его на -1) с последующей перезагрузкой;
- Попробовал включитьСМБ1на сервере/рабочей станции с последующей перезагрузкой;
- Попробовал отключить антивирус (ESET) на сервере/рабочей станции с последующей перезагрузкой;
- Отключена энергосберегающая сеть на карте как сервера, так и рабочей станции с последующей перезагрузкой;
- Попробовал отключить брандмауэр на сервере/рабочей станции;
- Дело находилось под лабораторным наблюдением в течение нескольких недель, но безуспешно.
Есть ли кто-то еще, кто сталкивается с подобными симптомами и может предложить альтернативные решения?
Спасибо за внимание.
решение1
В целом, в Windows 10 1809 появилась одна новая ошибка, признанная Microsoft в статье
Подключенный сетевой диск может не подключаться повторно в Windows 10 версии 1809.
Хотя Microsoft известно об этой проблеме, ее постоянное исправление ожидается не раньше 2019 года. В то же время, если это действительно ваша проблема, вы можете воспользоваться обходным решением, предложенным в статье, чтобы смягчить последствия ошибки.
Ниже я перечислил некоторые другие обходные пути, предложенные пользователями на интернет-форумах.
Попробуйте установить на клиенте значение SessionTimeout
65535 секунд. Это можно сделать с помощью команды PowerShell
Set-SmbClientConfiguration -SessionTimeout.
Он также может находиться в реестре по адресу
HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\ LANMANWORKSTATION\PARAMETERS\SESSTIMEOUT
(см. здесь)старая ссылка).
После этого рекомендую перезагрузить компьютер.
Другие возможные обходные пути:
Измените групповую политику наОбновлятьскорее, чемЗаменятьсопоставление дисков в объекте групповой политики (GPO): Конфигурация пользователя > Настройки > Параметры Windows > Карты дисков. Видетьсвязь. Некоторые люди сообщают, что его можно настроить наОбновить.
Запустите на сервере и клиенте в cmd с повышенными привилегиями команду:
net config server /autodisconnect:-1
В настройках электропитания сетевого адаптера отключите параметр «Разрешить компьютеру отключать это устройство для экономии энергии».
Некоторые пользователи сообщают, что переназначение сетевого ресурса при входе в систему решает проблему, а некоторые добавили для этого скрипт входа.
В других отчетах рекомендуется отключить быстрый запуск Windows 10.
решение2
- Если какой-либо сервер/клиентский ящик работает на VMWare, обновите VMware tools до версии 9.0.13 или выше. Драйвер vmxnet3 Ethernet, как часть пакета VMware tools, должен быть версии 1.5.2 или выше, в противном случае он может случайно отбрасывать пакеты без причины.
- Есть ли у вас какой-либо брандмауэр или балансировщик нагрузки, который стоит между ними? Пожалуйста, обойдите его и посмотрите, что из этого получится.
- Увеличение SESSIONTIMEOUT, упомянутое harrymc, является хорошим подходом. Я сделаю то же самое. Но я также сделаю это в целях тестирования:
Загрузите TCP Optimizer 4.0, измените эти настройки на стороне клиента и сервера, перезагрузите оба устройства: увеличьте MaxConnectionsPer1_0Server и MaxConnectionPerServer до 240, увеличьте Max SYNC Retransmissions до 7, MaxUserPort до 65534, TCPTimedWaitDelay до 180.
Войдите в систему клиентского компьютера, смонтируйте сетевой диск по его IP-адресу как \192.168.100.xxx\Source_folder, а затем запустите то же приложение, чтобы проверить его.
Если проблема не исчезнет, пожалуйста, сообщите, какое приложение вы используете. Если это приложения Java, возможно, потребуется некоторая настройка. Желаю вам удачи и с нетерпением жду, как все пойдет.