|  | 
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Ситуация: есть WCF 64 бит, он внутри использует функцию с загрузкой неменеджед длл [DllImport("mydll")] ... Все хорошо, когда я пускаю WCF из-под консольного хоста. Но когда тот же сервис пускаю на том же компьютере как веб аппликацию из-под IIS пишет, что авторCan not create ttt Unable to load DLL 'Editor.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) File : Ln 0 Я подозреваю, что DllImport указывает искать длл в текущей директории, и в случае IIS она не та, где лежат файлы веб аппликации. Как правильно решить проблему? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.12.2012, 21:38 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Ну... Можно путь "конкретный" задать...   Dynamic-Link Library Search Order ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.12.2012, 23:05 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Winnipuh, скорее всего он пытается найти DLL-ку в папке Temporary ASP.NET Files куда содержимое папки bin автоматически копируется. Нужно положить DLL в папку входящую в PATH или дать подсказку с помощью функции SetDllDirectory. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.12.2012, 00:35 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ bazileWinnipuh, скорее всего он пытается найти DLL-ку в папке Temporary ASP.NET Files куда содержимое папки bin автоматически копируется. Нужно положить DLL в папку входящую в PATH или дать подсказку с помощью функции SetDllDirectory. Спасибо. Проблема в том, что веб апп ставится инсталлером и юзер может выбрать имя, а следовательно виртуальный фолдер, куда ставить. Т.е. в конце концов конкретный путь будет известен после реальной инсталляции. В каком месте лучше вызывать эту функцию: SetDllDirectory? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.12.2012, 13:22 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Winnipuh, можно в global.asax, можно в статческом конструкторе твоего сервиса. Путь к bin папке можно узнать через HostingEnvironment.ApplicationPhysicalPath или рефлексию поэтому твой код без проблем подстроится под конкретную среду. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.12.2012, 14:04 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ bazileWinnipuh, скорее всего он пытается найти DLL-ку в папке Temporary ASP.NET Files куда содержимое папки bin автоматически копируется. Нужно положить DLL в папку входящую в PATH или дать подсказку с помощью функции SetDllDirectory. кстати, но эти длл лежат в bin, они по идее тоже должны копировать? тогда почему ассембли их не находит? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.12.2012, 14:44 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Winnipuh, не должен. Копируются только .NET сборки. Неуправляемые dll к ним, очевидно, не относятся. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.12.2012, 16:47 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ bazileWinnipuh, не должен. Копируются только .NET сборки. Неуправляемые dll к ним, очевидно, не относятся. аааааааа! вот теперь прояснилось... Я вот что подумал, кстати, а можно ли упаковать эти неменеджед длл скажем в ресурсы ассембли, и каким-то образом их подгружать? Типа того, как это можно сделать с ассемблями ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.12.2012, 17:13 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Можно вообще моск не есть... А попробовать таки переменные окружения...? Ну или сделать COM обертку и горя не знать :) На сколько я понял, Вы хотите развертывания простым копированием...?  Может просто переделать сетуп...? Последнее Ваше озарение из серии "стоя и в гамаке" ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.12.2012, 17:32 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ buserМожно вообще моск не есть... А попробовать таки переменные окружения...? Ну или сделать COM обертку и горя не знать :) На сколько я понял, Вы хотите развертывания простым копированием...?  Может просто переделать сетуп...? Последнее Ваше озарение из серии "стоя и в гамаке"  у меня инсталлер ставит сервис, юзер выбирает имя и соответственно фолдер. Через переменные окружения попробую, их надо будет исправлять в процессе инсталляции... но хочется чтобы красивое решение ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 25.12.2012, 18:49 |  | ||
| 
WCF: как загрузить unmanaged dll? | |||
|---|---|---|---|
| #18+ Проверил:  Код: c# 1. 2. 3. не работает. 2. добавил вручную явно в пути PATH путь к бину - та же ошибка.... что еще может быть? зы. там набор неменеджед дллей, которые вызывают одна другую внутри... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 02.01.2013, 14:55 |  | ||
|  | 

| start [/forum/topic.php?desktop=1&fid=19&tid=1397125]: | 0ms | 
| get settings: | 13ms | 
| get forum list: | 14ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 48ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 48ms | 
| get tp. blocked users: | 2ms | 
| others: | 238ms | 
| total: | 382ms | 

| 0 / 0 | 
