Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.253.161] |
|
Сообщ.
#1
,
|
|
|
В общем, ситуация следующая:
Есть некая dll-ка c математикой, есть сайт к которой ее нужно прикрутить. Если я запускаю сайт из под дебагера VS2010 с его встроенным сервером, то все импортируется и работает нормально. Когда я выкладываю это дела на 2012 сервер с его IIS при попытке выполнить функцию IIS виснет наглухо. В чем может быть дело? вот пример кода: namespace GlobalMapperSDK { using GM_LayerHandle_t32 = IntPtr; ... public enum GM_LoadFlags_t32 : uint { GM_LoadFlags_HideProgress = 0x00000001, GM_LoadFlags_NoProjPrompt = 0x00000002, GM_LoadFlags_UseDefaultProj = 0x00000004, GM_LoadFlags_HideWarnings = 0x00000008, GM_LoadFlags_HideUnknownPrompt = 0x00000010, GM_LoadFlags_UseDefaultPos = 0x00000020, GM_LoadFlags_HideAllPrompts = 0x00000040, }; ... public class GlobalMapperDLL { private const string DLLFileName = @"C:\\inetpub\\wwwroot\\Bin\\GM\\GlobalMapperInterface.dll"; ... [DllImport(DLLFileName, EntryPoint = "GM_LoadLayerList")] public static extern GM_Error_t32 GM_LoadLayerList(String aFilename,out GM_LayerHandle_t32 aLayer,out UInt32 count,GM_LoadFlags_t32 aLoadFlags); ... } } ... IntPtr layers; UInt32 count; GlobalMapperDLL.GM_LoadLayerList(savePath, out layers, out count, GM_LoadFlags_t32.GM_LoadFlags_HideProgress | GM_LoadFlags_t32.GM_LoadFlags_NoProjPrompt | GM_LoadFlags_t32.GM_LoadFlags_HideUnknownPrompt | GM_LoadFlags_t32.GM_LoadFlags_HideWarnings | GM_LoadFlags_t32.GM_LoadFlags_NoProjPrompt | GM_LoadFlags_t32.GM_LoadFlags_UseDefaultPos | GM_LoadFlags_t32.GM_LoadFlags_UseDefaultProj); |
Сообщ.
#2
,
|
|
|
битность dll и сервера различна?
|
Сообщ.
#3
,
|
|
|
Цитата UncleBob @ битность dll и сервера различна? У меня есть два варианта dll, 32 и 64 разрядные. Сервер x64, но, 64-х битную дллку он не воспринимает, пишет, что неизвестный формат |
Сообщ.
#4
,
|
|
|
2012 сервер по определению 64битный, если конечно IIS принудительно не переключили в 32 битный режим. Диспетчер заадач что для w3wp.exe показывает? 32 или 64?
Добавлено еще в Event Log неплохо было бы заглянуть, чтобы узнать что за падеж... |
Сообщ.
#5
,
|
|
|
Цитата UncleBob @ 2012 сервер по определению 64битный, если конечно IIS принудительно не переключили в 32 битный режим. Диспетчер заадач что для w3wp.exe показывает? 32 или 64? Добавлено еще в Event Log неплохо было бы заглянуть, чтобы узнать что за падеж... w3wp.exe 64-х битный |
Сообщ.
#6
,
|
|
|
Цитата BBC @ Сервер x64, но, 64-х битную дллку он не воспринимает, пишет, что неизвестный формат тут какое-то противоречие |
Сообщ.
#7
,
|
|
|
Цитата UncleBob @ Цитата BBC @ Сервер x64, но, 64-х битную дллку он не воспринимает, пишет, что неизвестный формат тут какое-то противоречие Мне тоже так кажется, но почему так понять не могу. |
Сообщ.
#8
,
|
|
|
а что Event Log?
|
Сообщ.
#9
,
|
|
|
Цитата UncleBob @ а что Event Log? Вообще по этому поводу ничего, видимо, он виснет раньше, чем пишет лог |
Сообщ.
#10
,
|
|
|
Все оказалось очень просто.
Не хватало прав IUSER на выполнение для dll-ки |