Клиенты Windows, использующие кэшированную копию .Net 4.0 exe, расположенную на сетевом диске

Клиенты Windows, использующие кэшированную копию .Net 4.0 exe, расположенную на сетевом диске

У нас есть исполняемый файл .Net 4.0 (MyProg.exe) и связанные с ними библиотеки DLL, которые развернуты на сетевом ресурсе с помощью XCopy. MyProg.exe и его библиотеки DLL не имеют подписи.

Мы установили их на сетевом ресурсе, чтобы несколько пользователей могли использовать одну и ту же версию программы и чтобы упростить обновление программы. Это хорошо работало для многих наших клиентов в течение многих лет.

Для недавнего клиента папка на виртуальной машине Windows Server 2012 является общей сетевой папкой. Пользователи запускают программу с другого терминального сервера (Windows Server 2012).

Когда мы обновилиMyProg.exe(до версии 2.0 с 1.0), терминальный сервер не запускает новый исполняемый файл, пока не будет перезапущен. Он продолжает загружать версию 1.0, даже если этот exe больше не доступен. Похоже, что он запускает кэшированную версиюMyProg.exe V1.0.

  1. Действия, которые я попробовал:
    1. Закрыть все экземпляры программы
    2. Скопировать новыйMyProg.exeв папку и перезаписать файлы (Обновлена ​​версия exe с 1.0 до 2.0)
    3. Проверьте версию 2.0MyProg.exeиз его Свойства >> Страница сведений как с файлового сервера, так и с терминального сервера
    4. Убедитесь, чтоMyProg.exe V2.0запускается при запуске с файлового сервера с использованием файла ярлыка (цель:\\Сервер\MyProg\MyProg.exe)
    5. Запустите тот же файл ярлыка (цель:\\Сервер\MyProg\MyProg.exe) с терминального сервера иMyProg.exe V1.0начинается
    6. Переименовать\\Сервер\МояПрогак\\Сервер\МояПрог1и убедитесь, что терминальный сервер не может запустить ярлык, поскольку эта папка больше не существует.
    7. Создайте новый файл ярлыка (Цель:\\Сервер\MyProg1\MyProg.exe) и подтверждаем, чтоMyProg.exe V2.0работает на клиенте
    8. Переименовать папку\\Сервер\MyProg1вернуться к\\Сервер\МояПрогаи запуск оригинального файла ярлыка продолжает загрузкуMyProg.exe V1.0до перезапуска терминального сервера.
    9. Я проверил, что автономные файлы отключены на терминальном сервере.
    10. Я проверил, что не могу перезаписать исполняемый файл MyProg.exe, когда программа запущена на терминальном сервере.

Что еще я могу проверить, чтобы устранить неполадки, из-за которых старая версия исполняемого файла запускается, даже если этот файл больше не существует?

решение1

Связался с командой технической поддержки Microsoft. Они сказали, что это может быть вызвано этими настройками SMB. Мы изменили эти настройки и сохраним информацию во время следующего обновления.

http://technet.microsoft.com/en-us/library/ff686200(v=WS.10).aspx

Настройки по ссылке выше не сработали.
Подробнее, что помогло нам разобраться в проблеме:Клиентский компьютер — это терминальный сервер Windows.

В этой статье базы знаний приведена дополнительная информация по этому вопросу:
https://support.microsoft.com/kb/2536487

Приложения могут аварийно завершить работу или перестать отвечать, если другой пользователь выйдет из сеанса удаленного рабочего стола в Windows Server 2008 или Windows Server 2008 R2

Симптомы:

При запуске приложения с сопоставленного диска приложение может перестать отвечать или аварийно завершить работу для пользователя (или нескольких пользователей), когда другой пользователь выходит из системы. Например:

  1. Один сервер является файловым сервером, а другой — сервером удаленного узла сеансов (терминальным сервером).
  2. Папка на файловом сервере отображается для использования удаленными пользователями, подключающимися к серверу RDS.
  3. Приложение на сопоставленном ресурсе запускается несколькими пользователями.
  4. Один пользователь выходит из системы, и это приводит к сбою приложения или его зависанию у других пользователей.

В частности, поведение возникает, когда первый или последний пользователь приложения выходит из системы, в зависимости от версии. Windows Server 2008 будет испытывать эту проблему, когда первый пользователь выходит из системы; Windows Server 2008 R2 будет испытывать эту проблему, когда последний пользователь выходит из системы.

Причина:

Это происходит из-за способа, которым редиректор обрабатывает FCB (блок управления файлом) для рассматриваемого двоичного файла. В Windows Server 2008 FCB принадлежит пользователю, который первым открыл файл, и этот FCB используется последующими пользователями. Когда первый пользователь выходит из системы, FCB становится неактивным, что приводит к сбою или неотзывчивости последующих пользователей приложения. В Windows Server 2008 R2 FCB принадлежит последнему пользователю, открывшему файл, и предыдущие пользователи сталкиваются с этой проблемой, если последний пользователь выходит из системы

Обходной путь:

Установите приложение локально на терминальном сервере, а не на сетевом ресурсе.

Связанный контент