|
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?fid=19&msg=38098707&tid=1397125]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 142ms |
0 / 0 |