Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Запуск приложения в локальной сети |
Автор: Ren 22.12.2007, 19:58 |
Приветствую всех форумчан! Столкнулся с такой вот ситуацией. Написал приложение на C#. На локальной машине всё работает отлично. Вся загвоздка начинаеться в тот момен, когда пробую работать с ней в сети. Расскажу по подробнее. Когда приложение находиться находиться на сетевом ресурсе в локальной сети, при попытке запуска из командной строки появляеться окно, сообщяющее что в приложении произошла ошибка и оно будет закрыто (Стандартное окно ОС для необработаных ошибок). И так, Размещение файла: \\ServerName\SharedFiles\App.exe Случай первый (запуск приложения "ручками"): Открыл директорию в проводнике. Запуск файла. Всё работает. Случий второй (Запуск приложения из командной строки): строка: \\ServerName\SharedFiles\App.exe -p1 c:\dir1\1.xml результат: окно с ошибкой. тут "-p1" "c:\dir1\1.xml" - параметры, которые использует приложение По поиску прошёлся, ничего по теме не нашёл :( В чём может быть собака зарыта? Если кто с такой проблемой сталкивался расскажите как выкрутились. |
Автор: mr.DUDA 22.12.2007, 23:35 |
Дело в том, как в .NET организована система безопасности. Когда приложение запускается из локальной директории, всё более-менее понятно. Используются обычные настройки безопасности windows (те которые дефолтные или из домена). Зато если запускается прога из расшаренной папки в локальной сети, действуют совсем другие правила. Используется набор разрешений из настроек безопасности .NET, по дефолту всё запрещено: запись и чтение файлов, изменение реестра, даже работа с GUI. Изменить эти правила можно двумя способами: либо настроив политики безопасности .NET, либо прописав атбрибуты assembly запрашивающие необходимый минимум полномочий (иначе сборка просто не запустится). |
Автор: Legolas 23.12.2007, 02:20 |
у меня тоже такая проблема была, спасибо. |
Автор: Ren 23.12.2007, 16:15 |
после добавления try...catch... в Main выдает ошибку следуещего характера "Не могу загрузить файл или сборку '...' или одну из её зависимостей" ('...' -имя, версия и остальная информация о внешней подключаемой библеотеке) а дальше о неудачной попытке и про минимальными разрешения, что собственно и подтверждается выше упомянутым в сообщ. mr.DUDA. Я в этом покамись новичёк. Подскажите с чего начать что бы этого не было и всё работало, какой раздел литературы копать что бы разобраться? Если есть примерчик, продемонстрируйте плиз ![]() Структура следующяя: App.exe, LibUsed.dll. В локальной сети работает до момента подключения библиотеки. |
Автор: VisualProgrammerNET 24.12.2007, 03:46 |
Просто при запуске программы сделай так, чтобы все внешние дллки копировались на локальный диск и подключались уже отсюда. В конце работы их можно удалить. |
Автор: mr.DUDA 25.12.2007, 02:03 |
Можно попробовать следующее. На компе где будет запускаться прога заходим в меню пуск, настройка, панель управления, администрирование, Microsoft .NET Framework 2.0 configuration. Выбираем "Configure Code Access Security Policy", "Increase Assembly Trust", указываем на LibUser.dll в сети. Сборка вроде как должна быть подписана ключом. |