0

Запуск программы с сервера

Запустить скрипт на локальном (например, на домашнем) компьютере – весьма просто. А вот как это сделать на удаленном компьютере, т.е. на сервере?

Понятно, что в автоматическом режиме его можно запустить, используя автоматический планировщик Cron. А вот как быть, если требуется запустить вручную (например, для окончательной отладки программы)? Об этом пойдет речь в нашей статье. Статья написана, скорее, для новичков.

Что такое серверный скрипт, для чего он бывает необходим при работе сайта, объяснять не буду. В самом деле, любой мало-мальски функциональный сайт нуждается в автоматизированном выполнении тех или иных операций.

Подавляющее большинство серверных (т.е. таких, которые выполняются на стороне сервера) скриптов пишут, например, на PHP, на Perl (ну, и плюс та или иная СУБД, если, конечно, в ней есть необходимость). РНР используется, если скрипты выполняют относительно небольшой объем работы, т.е. их целесообразно использовать там, где производительность (быстродействие) не является критичным. По сути, имея синтаксис и особенности, во многом сходные с языком С (Си), PHP во многом напоминает не что иное, как VBA от Microsoft. Практически та же самая идеология и, соответственно, примерно аналогичное быстродействие. На наш взгляд, PHP может применяться в основном для создания вспомогательных, не слишком часто запускаемых скриптов, которые, в идеале, запускаются не при первой загрузке страницы сайта. Например, для организации интерфейса, передачи данных с открытой страницы на сервер, ну, или т.п.

Скрипты на Perl обладают более высоким быстродействием, но, в отличие от РНР, Perl заметно сложнее, его код менее читаем. Правда, и возможностей у него побольше, чем у PHP. Однако, если требуется быстрая загрузка сайта (а кто сомневается в актуальности этого), быстрое выполнение скриптов (например, производящие сложные математические вычисления, применяемые, в том числе, в онлайновых играх), то целесообразнее написать их на более производительном языке, например, на С (или С++), но не спутайте его с С#, который и по идеологии, и по быстродействию недалеко ушел от VBA. Да, на С++ (чистый С еще быстрее), а то и на Ассемблере.

Кому-то может показаться, что написание серверных скриптов на С является анахронизмом. Однако, это не так. На самом деле, язык С дает примерно те же возможности, да и синтаксис, в целом, схож с РНР. Правда, серверные скрипты, написанные на С, являются, конечно, более объемными по сравнению с теми, что выполнены на РНР. Потом, в С можно столкнуться с довольно серьезной проблемой, связанной с кириллической кодировкой. В PHP она решается, можно сказать, автоматически, а в С – придется все программировать вручную. Но, повторимся, выигрыш в быстродействии – того стоит.

Как запустить на сервере программу, написанную на С (Си)?

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

В LINUX же немного по-другому. Например, для запуска программы, имеющей имя program, надо будет открыть консоль (или терминал, как его называют) и написать в командной строке:

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

Надеемся, Вы в курсе об одном из основных отличиях систем Windows и LINUX? Windows, начиная с версии XP, дает пользователю графический интерфейс, а консоль там является, на самом деле, лишь настройкой над ним (т.е. запускается соответствующая виртуальная машина, эмулируюшая консоль). Тогда как в LINUX система, наоборот, загружается изначально в консольном режиме, а уже над ней может быть загружена графическая оболочка.

Итак, на локальном компьютере все просто. А вот как это сделать на сервере?

Для этого, естественно, вначале следует скопировать Вашу программу (исполняемый файл) в соответствующий каталог, из которого Вы хотите ее запустить. Понятно, что перед этим программа должна быть соответствующим образом скомпилирована и протестирована на локальном компьютере на предмет наличия ошибок, ибо исправлять ошибки у программы, загруженной на сервер, определенно сложнее.

Однако, просто так запустить программу на сервере не получится. Скажем, нажатие клавишей Enter или двойной щелчок мыши, скорее всего, вызовет попытку открыть ее код.

Чтобы запустить программу на сервере вручную, необходим или соответствующий клиент, который позволит это сделать или, что проще, консольный доступ на сервер.

Вы, наверное, слышали про доступ на серверы на основе таких протоколов прикладного уровня, как http , https , ftp ? Как правило, клиенты, работающие на этих протоколах, не позволяют производить запуск программ вручную. Поэтому для реализации консольного доступа необходимо использование, например, протокола Telnet или, гораздо более безопасного и современного протокола – SSH версии 2. Это – также протоколы прикладного уровня.

Далее все зависит от того, в какой операционной системе работает сервер (хостинг), на котором Вы планируете запускать программу. Как правило, на серверах работает LINUX, например, Debian. Windows гораздо менее популярен. Понятно, что Ваша программа, которую Вы скопировали на сервер и хотите запустить, должна корректно запускаться в операционной системе сервера. Т.е. если, скажем, там установлен LINUX, то и программа должна быть написана и скомпилирована в Линуксе.

Затем, имеет большое значение, в какой операционной системе работает Ваш (домашний) компьютер.

Если он работает в Windows, в этом случае можно воспользоваться утилитой telnet от Microsoft. Она, к сожалению, не соответствует современным требованиям безопасности (в частности, аутенификационные данные – пароль – передаются в открытом виде). Поэтому целесообразно использовать соответствующий клиент для того, чтобы подключиться к серверу по SSH:

Возможно использование SSH-клиента PuTTy. Перейдя по указанной ссылке, Вы можете ознакомиться с подробным описанием технологии консольного подключения, т.е. по протоколу SSH. Клиент необходим для того, чтобы, в частности, эмулировать LUNUX на Вашем компьютере.

Если же Ваш компьютер работает в LINUX, то задача упрощается: необходимо лишь открыть терминал и ввести команду

u123456789 — логин учётной записи хостинга
123.123.123.123 — IP-адрес сервера

Далее, если параметры введены правильно, система запросит пароль и, после корректного его ввода и проверки системой Вы попадете в консоль НА СЕРВЕР. И, в общем-то, можете делать там все, что потребуется. Ну, в рамках Ваших прав доступа, конечно.

Заметим, что примерно такая же методология может быть использована, скажем, чтобы в режиме удаленного доступа попасть не только на сервер, но и на (частный) компьютер какого-нибудь пользователя – такого же, как Вы. Правда, для этого необходимо знать пароль (который некоторые установить забывают). Но, даже если и неизвестен пароль, возможен доступ в так называемые общие (share) папки. Поэтому некоторые пользователи компьютеров, если они используются для выхода в интернет, иногда вообще отключают эти общие папки или, что проще, останавливают службу server , которая по умолчанию, после установки Windows, является работающей.

Читайте также:  Аэрогриль home m101 инструкция

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

Вам нужно будет указать, соответственно, адрес своего сайта.

Далее, используя команду

cd пробел имя каталога

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

Если ошибок в Вашей программе нет, то она запустится и начнет выполняться.

При этом хочется обратить Ваше внимание на некоторые, для новичков неочевидные, вещи. Иногда требуется запустить программу в фоновом режиме, т.е. чтобы ее выполнение не мешало другим программам, в том числе и самой оболочке (например, bash). Когда это актуально?

Например, Вы написали программу, которая ждет некоторого события, скажем – поступления сообщения от другой программы. При этом, она, будучи в режиме ожидания, не даст возможности использовать командную строку.

Поэтому программу подобного рода целесообразнее запустить (при ручном запуске) в фоновом режиме, что делается путем добавления символа &:

Однако, это может повлечь за собой новую проблему. Дело в том, что, работая в фоновом режиме, программа никак себя не проявит (до тех пор, пока не произойдет событие, которого она ожидает). Поэтому, естественно, продолжит выполняться (точнее, ожидать событие) и после того, как Вы прекратите сеанс взаимодействия (связи) с сервером.

Вот с домашним компьютером – все проще: выключили его или начали перезагружать – и все, оперативная память чистая, все программы, даже зависшие и те, что работали в фоновом режиме, прекращают выполняться. А ведь здесь мы имеем дело – с СЕРВЕРОМ. Который выключается весьма редко (а если это будет часто, люди не станут размещать там свои сайты). Поэтому… Ваша программа, не будучи выгруженной, так и будет оставаться в оперативной памяти сервера. Во-первых, создавая ему бесполезную нагрузку.

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

Для сервера, работающего в LINUX, для этой цели может быть использована команда

Она выведет перечень всех процессов, запущенных Вами в системе (с учетом самой оболочки bash и служба аутенификации, конечно же). И, что немаловажно, укажет индентификаторы каждой из запущенных программ (столбец с заголовком PID).

Кстати, вот список основных команд, которые здесь могут пригодиться:

  1. ps – выводить список запущенных процессов
  2. jobs – альтернативный путь для просмотра процессов запущенных Вами
  3. ls – просмотр текущего каталога
  4. bg – ставит выполнение процесса в фоновый режим
  5. fg – выводит выполнение процесса из фонового режима
  6. kill – отправляет сигнал на один или несколько процессов (в основном, чтобы "убить" их)

Вот, к примеру, результат, который выводит команда ps :

PID TTY TIME CMD
7318 pts/2 00:00:00 bash
20543 pts/2 00:00:00 ps
28314 pts/2 00:00:00 bash
28315 pts/2 00:00:00 logger

Кстати, команда kill имеет опции, выражаемые целым числом. Среди них имеют значение 1, 2, 15, 9. Последняя – вызывает принудительное, наиболее сильное (или грубое) завершение программы, причем игнорировать его она не сможет. Так, если Вы наберете

то должна выгрузиться оболочка bash (правда, скорее всего, она будет тут же автоматически загружена вновь, но уже с другим идентификатором).

Загрузим имеющуюся на сервере программу, написанную нами на С. Например, это будет program. Так как она предназначена для прослушивания определенного логического порта (под номером, к примеру, 5425, с использованием технологии сокетов), то, пока на этот порт не придет сообщение, она ничего выполнять не будет, просто находясь в состоянии ошижидания. Поэтому загрузим ее в фоновом режиме, чтобы она не мешала работать с оболочкой дальше. При этом:

-bash-4.1$ ./program & [1] 21015

Видим, что программе присвоен идентификатор со значением 21015.

Набираем ps, и вот что видим:

PID TTY TIME CMD
10292 pts/2 00:00:00 bash
10293 pts/2 00:00:00 logger
21015 pts/2 00:00:00 program
21016 pts/2 00:00:00 bash
21017 pts/2 00:00:00 logger
21022 pts/2 00:00:00 ps
28478 pts/2 00:00:00 bash

Так и есть, в третьей строчке находится наша программа с тем самым идентификатором.

Попытаемся (для эксперимента) вновь запустить ту же самую программу, путем набора

Система тут же сообщит:

bind: Address already in use

Примечание 1 . В программе, по сути, представляющей собой мини-сервер, использована функция bind , привязывающая прослушивающий сокет к номеру порта, равному 5425. Кстати, выбор номера порта достаточно произволен, главное, чтобы он не был ниже 1024 (для самостоятельно разработанных программ), ибо область значений, меньших 1024 отведена под стандартные порты.

Примечание 2 . Не спутайте данную программу (написанную нами), представляющую собой мини-сервер, с программой-сервером хостинга. Наша программа работает под управлением сервера, который, в свою очередь, управляет хостингом. Надеемся, Вы в курсе, что понятие "сервер" включает в себя два смысла (значения): во-первых, это программа, которая управляет работой хостинга, позволяет пользователям открывать страницы сайтов, расположенных на нем. Во-вторых, сервер – это компьютер, на котором расположена и работает программа-сервер. Для сервера наша программа ( program ) представляет собой лишь одну из программ, которая может быть запущена пользователем (нами, к примеру), не более того.

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

Так как порт под номером 5425 занят, то, соответственно, команда bind во второй раз сработать не может, вызывая указанную ошибку.

Так вот, кстати, если теперь прекратить сеанс работы, то program останется загруженной в оперативную память сервера. А если еще ее спроектировать так, чтобы она каждый раз генерировала все новые и новые значения портов – то в итоге можно запустить сколько угодно копий указанной программы… и потом получить замечание от хостера. Что нам, конечно, совсем ни к чему.

Поэтому – выгрузим программу из оперативной памяти:

Система даст сообщение:

[1]+ Killed ./program

Проверка при помощи команды ps показывает, что все, процесса с названием программ больше нет:

PID TTY TIME CMD
2382 pts/2 00:00:00 bash
2383 pts/2 00:00:00 logger
5848 pts/2 00:00:00 ps
28478 pts/2 00:00:00 bash

Но, может статься, что порт (под номером 5425) все же не освободится. Вообще, при передаче данных на основе сокетов (используется протокол TCP) система резервирует порт даже в случае, если программа прекратила выполняться. Это делается для того, чтобы при неожиданных обрывах связи (что может создавать – для компьютера, который посылает сообщения нашей программе – видимость прекращения ее выполнения) сохранить на некоторое время работоспособным используемый порт – в расчете, если связь восстановится и/или программа опять заработает. Т.е. таким образом, предусмотрена как бы подстраховка от некорректного завершения работы программы.

Читайте также:  Затвор камеры что это

Кроме того, порт, скорее всего, не освободится в том случае, если работа программы будет завершена некорректно.

Это означает, что вновь, до момента освобождения порта, программа может не заработать – порт-то занят.

Поэтому после окончания работы с нею желательно проверить, каким сервисом открыты соединения на данному порту, при помощи следующей команды:

netstat -tnlp | grep 5425

Вот что сообщит система:

tcp 0 0 0.0.0.0:5425 0.0.0.0:* LISTEN 21015/./program

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

Для очистки порта (т.е. для удаления его из системы) можно набрать

Произойдет «жесткое» удаление программы из оперативной памяти, в том числе и всех созданных ею объектов, т.е. логических портов.

Вот теперь, как закончили работу, можно закрыть сеанс соединения. Для этого набираем команду

Сеанс должен закрыться:

logout Connection to closed.

Таким образом, как видите, ручной запуск скрипта на удаленном сервере не представляет особого труда.

Как установить программу на «сервер» и настроить доступ с рабочих станций

Установка программы на локальную сеть состоит из двух этапов – установки программы на сервер и подключения рабочих станций.

После скачивания дистрибутива программы "Клиенты" запустите его на установку на сервере, щелкнув по нему дважды либо выбрав опцию "Выполнить" (Запуск) после окончания закачки.

1. При работе регулярно делать резервную копию. Например раз в неделю. Для ежедневного автоматического архивирования программ по времени можно использовать бесплатную утилиту Автоматическое архивирование файлов.

2. Не ставить программы в Program Files. Имя папки должно быть английскими буквами, без пробелов.

3. Программы должны инсталлироваться с правами Администратора.

4. Если компьютер подключен к интернету, то при работе используйте обновляемый антивирус. Наличие антивируса не гарантирует от вирусов. Существуют вирусы, портящие информацию в базах (см. п. 1). При подозрении на вирусы проверьте компьютер разными антивирусами.

В папке с программой есть файл Readme.txt

При запуске установочного дистрибутива на установку (DblClk на скачанный архив) запустится окно инсталлятора и появится лицензионное соглашение.

Установите параметр "Я принимаю условия лицензионного соглашения" и нажмите кнопку "Далее".

Укажите в текстовой строке папку для инсталляции программы (например C:klient305 ) либо выберите ранее созданную через дерево каталогов. По умолчанию для каждой новой версии программы папка своя.

Не рекомендуется устанавливать программы в Program Files в связи с особыми правами доступа к данной папке в некоторых ОС (например Windows Vista или Windows7, см. Возможные проблемы при установке и работе программы )

Выберите программную группу, куда программа инсталляции скопирует ярлык для программы. По умолчанию для каждой программы группа своя. Затем нажмите кнопку "Далее"

Для продолжения установки нажмите кнопку "Установить"

Программа установки скопирует файлы базы данных на жесткий диск в папку, указанную ранее пользователем.

После завершения копирования файлов появится сообщение, что установка завершена.
Для окончания установки нажмите кнопку "Готово"

Для просмотра файла Readme.txt в папке с программой галочка должна быть установлена.

Для запуска установленной программы на сервере необходимо запустить программный файл klient.exe в папке с программой (папка была выбрана пользователем в процессе установки ).

Программу можно запустить через ярлык в соответствующей программной группе.

Ярлык на программу будет помещен также на Рабочий стол сервера, запуск программы осуществляется с помощью двойного щелчка на ярлык.

Программа на сервер установлена.

Теперь необходимо предоставить права доступа для пользователей, которые будут работать с программой по сети.

Для этого нажмите правой кнопкой мыши на значек папки, выберите пункт меню Свойства.

Откроется окно свойств папки.

В свойствах папки надо разрешить чтение и запись в закладках Permissions (Доступ) и Security (Безопасность), либо убрать галочку Только чтение (Read only).

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

Подключение рабочих станций:

На каждом рабочем месте, где будет запускаться программа, надо установить дистрибутив программы.

Программа на каждом рабочем месте устанавливается для автоматической регистрации в системе компонентов для работы со сканером, после установки папку с программой можно удалить.

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

Через сетевое окружение надо найти папку на сервере ( \serverklient305, где "server" – имя Вашего сервера ), нажать на нее правой кнопкой мыши и выбрать пункт меню "Подключить как сетевой диск".

Имя диска выбирается любое из доступных, например Z, затем нажмите кнопку "Готово".

Затем надо открыть этот сетевой диск и вывести на рабочий стол ярлык с файла klient.exe

Обратите внимание, чтобы в свойствах ярлыка правильно приписалась рабочая папка.

Должен стоять сетевой диск Z:

Программу на рабочих станциях запускать через созданный ярлык.

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

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

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

Ниже я расскажу как настроить Удаленные приложения RemoteApp в Windows Server 2008 R2 на примере программы 1с:Предприятие 7.7.

0. Оглавление

1. Что понадобится

  1. Компьютер с Windows Server 2008 R2 (об установке можно прочитать здесь)
  2. Запущенный сервер терминалов на данном компьютере (об установке сервера терминалов читайте здесь)
  3. Также, на этом компьютере должно быть установлено и настроено приложение, которое мы будем добавлять в RemoteApp, в моем случае это 1С:Предприятие 7.7 (об особенностях установки 1С:Предприятие 7.7 я писал здесь)
Читайте также:  Видеорегистратор falcon eye отзывы

2. Создание RDP-файла или установщика для удаленной программы

Запускаем «Диспетчер удаленных приложений RemoteApp» («Пуск» — «Администрирование» — «Службы удаленных рабочих столов» ) и в меню «Действия» слева нажимаем на «Добавить удаленные приложения RemoteApp» .

В запустившемся мастере нажимаем «Далее» , выбираем необходимое приложение, затем снова «Далее» и «Готово» .

После чего данная программа появится в списке удаленных приложений RemoteApp. Выделив его в таблице нажимаем на «Создать RDP-файл» в меню слева.

Запустится «Мастер удаленных приложений RemoteApp» , нажимаем «Далее» и попадаем на окно «Задание параметров пакета» . Здесь можно выбрать каталог, куда сохранится RDP-файл, задать параметры шлюза удаленных рабочих столов, а также параметры сертификата для защищенных соединений. Но главное, можно поменять имя сервера и порт. Изначально выставлены имя компьютера и порт RDP по умолчанию. С такими настройками приложение будет доступно только из локальной сети. Если необходимо, чтобы программа запускалась и со всех компьютеров, подключенных к сети Интернет, то имя сервера нужно заменить на внешний IP-адрес, а также, по необходимости, изменить порт, который проброшен на маршрутизаторе для данного сервера, как показано на скриншоте ниже.

Порт также следует поменять, если вы меняли порт по умолчанию для сервера терминалов (о том как это сделать, можно прочитать здесь). Завершаем работу мастера нажав «Далее» и «Готово» , после чего в указанном каталоге найдем файл с расширением rdp.
Аналогичным образом можно создать msi-установщик, нажав на «Создать пакет установщика Windows» . При запуске получившегося таким образом установщика, он будет создавать RDP-ярлык на рабочем столе и в меню пуск с иконкой выбранного приложения.
Теперь, если запустить получившийся RDP-файл с другого компьютера в сети, то появится окно ввода логина/пароля для входа на сервер.

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

3. Настройка пользователей

Если приложение будут запускать несколько пользователей с одинаковыми настройками, то необязательно добавлять каждого на сервер. Достаточно создать только одного пользователя, скажем User_1C (о том как создать пользователя можно прочитать здесь), настроить все параметры (список баз, принтеры пр.) для этого пользователя и разрешить множественные сеансы.

Для того чтобы разрешить множественные сеансы заходим в «Пуск» — «Администрирование» — «Службы удаленных рабочих столов» — «Конфигурация узла сеансов удаленных рабочих столов» кликаем 2 раза по «Ограничить пользователя единственным сеансом» , в окне свойств снимаем галочку «Ограничить всех пользователей одиночными сеансами» .

Значение должно поменяться на «Нет» .

Кроме этого, надо знать еще об одном нюансе. Дело в том, что при закрытии приложения, запущенного через RemoteApp, пользователь не выгружается автоматически, а отключенная учетная запись так и продолжает «висеть» на сервере. Чтобы изменить это, в свойствах пользователей, которые будут запускать приложения через RemoteApp, на вкладке «Сеансы» устанавливаем «Завершение отключенного сеанса» через 1 минуту.

На этом настройка закончена. Мы выполнили ее таким образом, что несколько человек одновременно могут работать с программой 1С:Предприятие 7.7 под одной учетной записью (для удобства работы можно создать несколько учетных записей, например, User_1c_Buh, User_1C_Operator, User_1C_Sklad и т. д. или же отдельную учетную запись для каждого пользователя).

Смотрите также:

Здесь будет рассказано как изменить политику паролей в Windows Server 2008. По умолчанию все пароли в Windows должны отвечать политике безопасности, а именно: Не содержать имени учетной записи пользователя…

Ниже будет рассказано о том, как добавить новое правило в Брандмауэр Windows Server 2008 R2. А конкретнее, будем добавлять разрешающее правило для порта 1433, который использует Microsoft SQL Server 2008 R2 или, как…

Иногда, при установке или запуске некоторых (часто устаревших) программ в Windows Server 2008 (справедливо и для Windows 7), можно наткнуться на ошибку вида: "Версия этого файла несовместима с используемой версией…

119 комментариев на «Настройка удаленных приложений RemoteApp в Windows Server 2008 R2»

Добрый день.
С нуля установлена win2008 r2 standart.Поднят RDP, созданы установщики удалённых приложений 1с77, 1с82, Wold и Excel. Всё изумительно работает на 20 клиентских машинах.
Также на этом серваке расшарена папка obmen с которой все пользователи работают , содержимое этой папки в основном текстовые и табличные файлы, созданные как в OFFICE так и в OPENOFICE. Так вот, началась проявлятся такая проблема: перестали открываться табличные файлы с ошибкой «Удалённый компьютер не настроен на открытие файлов данных этого типа». Причем не открываются файлы с расширением xls и xlsx, а odt открывается без проблем. Если открывать файлы из под excel то всё открывается.
Делал сопоставление как в терминале под админом так и на клиентских машинах, не помогает. Изначально всё работало.
Помогите решить проблему.

Добрый день. По поводу множественных и одинарных сеансов, к сожалению, не получается,т.к. эти параметры общие для всех подключений и изменяются для всех, есть ли другие варианты?

Здравствуйте!
Прошу совета по возникшей проблеме: часть пользователей работает в базе данных 1С через RemoteApp.
По просьбе разработчиков, программисты написали модуль автоматического выброса пользователей из базы посредством ввода новой константы и изменения ее значения. Все бы ничего, те пользоватли, которые цепляются к базе локально, выбрасываются на «ура», а вот те, которые работают в базе через RemoteApp, почему-то напрочь виснут. причем, настолько, что иногда сам сеанс RemoteApp зависает настолько, что помогает только перезагрузка.
Возможно, тут нужны какие-то настройки самого RemoteApp-соединения? Ведь, получается, что он реагирует на закрытие только тогда, когда инициатива закрытия исходит от самого пользователя (когда он просто закрывает сеанс крестиком), а если инициатива закрытия приложения идет от самого приложения, он «не понимает» чего от него требуют и благополучно «вешается».
Кто-нибудь сталкивался с подобной проблемой?
Заранее спасибо если кто ответит.

Здравствуйте.
Можно настроить время завершения каждого сеанса RemoteApp по простою, для всех сеансов или для каждого конкретного пользователя.
Относительно завершения работы в 1С, то, скорее всего, разработчики «рубят» сеансы на кластере 1С, тогда так сам процесс 1cv8.exe продолжает «висеть» в сеансе. Тут уже надо разбираться детально.

В связи с изменением в Windows Server 2012 и выше работы с RemoteApp не планируете написать такую же полезную статью о запуске 1С 7.x/8.x как RemoteApp?

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *