[identity profile] z-master.livejournal.com posting in [community profile] useful_faq
Win 2003 Server

На сервере установлена некая программа. Существует необходимость запустить эту программу из локальной сети. Каталог, в который установлена прога, открыт для полного общего доступа с именем шары progdir даже для самого последнего юзера. Прога использует Net Framework 2.0.
При запуске c:\program files\progdir\proga.exe всё работает отлично.
При запуске \\server\progdir\proga.exe (запуск с сервера под админом) винда думает пару секунд, на экране ничего не происходит, а в журнале событий "Приложение" появляется запись ошибки с кодом 1000 (.NET) в коей указывается faulting application proga.exe, парам-парам, faulting module kernel32.dll.
Тот же результат получаем, если скопируем только экзешник программы в любое другое место, например на десктоп, и запустим оттуда. То есть получается, что программа при запуске не может получить доступ (или найти) dll-ку, которая лежит рядом с ней в расшаренном каталоге.

Было мнение, что проблема с доступом из-за NTFS, но установка проги на раздел FAT32 дала тот же результат.
Была попытка в процессе установки проги указать ей путь установки \\server\progdir\, но инсталлер на каком-то этапе ругается, что не может найти необходимый для установки файл по пути "file:///\\server\progdir...", не удалось.
Для экплорера программа является программой неизвестного издателя (он ругается при её запуске).
Такой способ запуска для данной проги в целом возможен, ибо на другом компе оно всё работает. Просмотрел все настройки безопасности, какие мог посмотреть на компе, где оно работает, различий не увидел.

Где и что надо прописать, чтобы оно заработало?

Я лох, помогите чайнику.

Date: 2007-12-18 07:29 pm (UTC)
From: [identity profile] ex-neromanti843.livejournal.com
Программа явно использует ресурсы, не существующие/не доступные на машине, с которой Вы пытаетесь ее запустить. Надеюсь, Вы понимаете, что запуская ее с каталога на сервере, Вы не запускаете ее на самом сервере?

Date: 2007-12-18 07:55 pm (UTC)
From: [identity profile] ex-neromanti843.livejournal.com
Если Вам так необходимо чтобы программа была установлена именно на сетевом диске, попробуйте map the network drive (не уверен как это обозвали в русской версии).

Все же, запуская программу с сетевого диска, Вы создаете процесс именно на локальной машине. А значит, если программа использует какие-либо ресурсы, доступные исключительно локально (тот же .NET Framework, COM/DCOM components, windows services, WMI и т.д.) - эти ресурсы должны быть установлены локально.

Date: 2007-12-18 08:11 pm (UTC)
From: [identity profile] ex-neromanti843.livejournal.com
Не думаю, что настройки .NET Framework помогут если падает kernel32.

Если не секрет - зачем идти на локальный сервер через сеть?!

Date: 2007-12-18 07:44 pm (UTC)
From: [identity profile] network-owl.livejournal.com
T.e. сама программа в режиме сервер/клиент работать не умеет?
В таком случае, самое простое, если не единсвеноое решение — redsktop, VNC и т.п.

Date: 2007-12-18 07:48 pm (UTC)
From: [identity profile] network-owl.livejournal.com
P.S. последнюю строчку уберите, пожалуиста.

Date: 2007-12-18 08:20 pm (UTC)
From: [identity profile] network-owl.livejournal.com
А по нетбиосу прога имеет юзера. Точнее даже никто никого не имеет,
или доставляет или нет.-)

Date: 2007-12-18 08:33 pm (UTC)
From: [identity profile] network-owl.livejournal.com
"Если я захожу домой через дверь — всё ОК, бнбо вот если я начинаю лезть на свой десятый этаж по карнизу —
отку-да то появляется милиция и скорая, рядом начинают ползать ребята в комбенизонах и что-то мне говорить...
Скажите кто-нибудь, что делать?"

Date: 2007-12-18 08:39 pm (UTC)
From: [identity profile] network-owl.livejournal.com
А где и чо прописать в приведённом примере?-)
Тем блеее, как я понимаю, у проиграммы более-менее продуманная защита.
Сомневаюсь, что разработчики такие "идиото", что не предусмотрели.-)

Date: 2007-12-18 09:37 pm (UTC)
allter: (Default)
From: [personal profile] allter
Может, на старом серваке уже сломаная кракерами версия? Или, все-таки, там программа используется по-другому.

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

Date: 2007-12-18 09:12 pm (UTC)
From: [identity profile] pieceofsummer.livejournal.com
У .net framework есть зоны безопасности. И зона "локальная сеть" накладывает ограничения на использование различных ресурсов, по сравнению с зоной "локальный компьютер".

Решение — добавить для данной программы (по пути или strong-имени) права FullTrust при помощи оснастки конфигурации .net.

Это решит проблему, если программа не затрагивает специфические ресурсы первой машины (например, файлы, которых нету на второй машине, или драйверы, которые установлены только на первой)

аддон

Date: 2007-12-18 10:48 pm (UTC)
From: [identity profile] pieceofsummer.livejournal.com
А dll-ки необходимые могут не рядом с exe-шником лежать, а быть установленными в GAC-е. Зависимости можно тем же fusion-ом или reflector-ом отследить, ежели что...

Date: 2007-12-19 12:03 am (UTC)
From: [identity profile] haviras.livejournal.com
Подымите фтп. И поставьте чмод на софтину эксекьют

Date: 2007-12-19 05:23 am (UTC)
From: [identity profile] ex-ctokejlj.livejournal.com
один из вариантов - подключение к удаленному рабочему столу наверно