[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 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-ом отследить, ежели что...