Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сборки с удаленного сервера, Assembly, GAC, ... 
:(
    Опции темы
Pankon
Дата 2.3.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Есть приложение, которое использует Assembly из GAC.

Как заставить это приложение, использовать такую же сборку(и), но с сервера smile
Добавлено @ 13:11
... и как организовать сборки на сервере (http, ftp, GAC) smile
PM MAIL   Вверх
arilou
Дата 2.3.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Pankon, есть способ. У AppDomain есть замечательное событие - AssemblyResolve. Вешаешь на него обработчик, в котором загружаешь сборку откуда твоей душе угодно smile Выглядит это примерно так:

Код

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);

// ...........

private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    // вот тут-то и колдуешь, например сливаешь сборку по HTTP
    // кэшируешь ее где-нить и загружаешь
    return Assembly.LoadFrom(...);
}



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Pankon
  Дата 2.3.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Большое спасибо за ответ.

Но приложение уже скомпилировано и работает smile

Я предполагаю - что-нубудь должно быть в файле конфигурации приложения, но не могу найти. smile
PM MAIL   Вверх
arilou
Дата 2.3.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Pankon @ 2.3.2006, 13:50 Найти цитируемый пост)
Я предполагаю - что-нубудь должно быть в файле конфигурации приложения, но не могу найти.

Кажись, http и ftp настроить на получится.
Добавлено @ 14:18
А вариант с написанием загрузчика для твоей проги не пойдет?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 2.3.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Имхо, в данном случае простейший выход - декомпиляция проги рефлектором, добавление необходимого кода и компиляция smile
PM   Вверх
Pankon
  Дата 2.3.2006, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Нека.. smile

Запихнул в файл конфигурации
Код

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="..."
                          publicKeyToken="..."
                          culture="...." />
        <codeBase version="1.0.1.0"
                  href="http://localhost/... .dll"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Удалил из GAC гаковскую версию.
smile
Заработало.
НО... smile
Если методы из Assembly обращаются к ресурсам компа, то дает исключение.... smile smile smile
smile
ЧТО ДЕЛАТь smile



PM MAIL   Вверх
mr.DUDA
Дата 2.3.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Pankon @ 2.3.2006, 13:42 Найти цитируемый пост)
ЧТО ДЕЛАТь 

Настроить на компе политику безопасности для данной конкретной сборки. Идём в Control Panel / Administrative Tools / Microsoft .NET Framework Wizards, там выбираем Trust Assembly, жмём Next, вводим свой URL.


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 2.3.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Pankon @ 2.3.2006, 14:42 Найти цитируемый пост)
Заработало.

Круто! Я не знал, что так можно.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Pankon
Дата 2.3.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Цитата(mr.DUDA @ 2.3.2006, 15:06)
Настроить на компе политику безопасности для данной конкретной сборки. Идём в Control Panel / Administrative Tools / Microsoft .NET Framework Wizards, там выбираем Trust Assembly, жмём Next, вводим свой URL.

Работает !!!

smile

Всем спасибо!
PM MAIL   Вверх
Pankon
  Дата 2.3.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Кстати.

Assembly, каждый раз грузится с удаленного сервера в "c:\winnt\assembly\download" или только первый раз,
а потом только проверяет наличие ее на удаленном сервере smile
Не могу это проследить.

Если я заново компилирую Assembly и выкладываю на http-сервер, то при запуске программы грузится эта "новая" версия
Assembly и помещается в "c:\winnt\assembly\download", хотя там "старая" лежит с таким же strong-именем smile.

Вообще хотелось бы, что бы Assembly грузилась с сервера, если только в кэше загрузки этой Assembly нет, а в текущей
работе использовалась локальная копия(из кэша загрузки).

Это сообщение отредактировал(а) Pankon - 2.3.2006, 17:12
PM MAIL   Вверх
Pankon
Дата 6.3.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5




А как программным путем посмотреть содержимое кэша загруженных сборок?????

smile
PM MAIL   Вверх
mr.DUDA
Дата 6.3.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Pankon @ 6.3.2006, 11:53 Найти цитируемый пост)
А как программным путем посмотреть содержимое кэша загруженных сборок?????

А зачем ? Всё равно фреймворк сам решает, когда и что грузить, так что подсунуть ему что-то своё вряд ли удастся. ИМХО.


--------------------
user posted image
PM MAIL WWW   Вверх
Pankon
Дата 6.3.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Хорошо.

Ну а как тогда программным путем очистить кэш загруженных сборок?


smile

Это сообщение отредактировал(а) Pankon - 8.3.2006, 18:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.