ASP.NET не может вызвать неуправляемую DLL после первоначального запроса - PullRequest
0 голосов
/ 09 ноября 2010

Итак, у меня есть неуправляемая DLL C ++, которую я вызываю из моего приложения ASP.NET, она имеет единственную точку входа и пару структур для передачи данных. Если я создаю консольное приложение C # для вызова DLL, он работает нормально. Если я подключу его к моему приложению asp.net, работающему на моей локальной машине WinXP (IIS 5.1), то оно будет работать нормально.

Когда я публикую его в нашей среде разработки, работающей под управлением Windows 2003 и IIS 6, первые 1 или 2 вызовы будут работать нормально, но затем они просто перестанут отвечать. Я не получаю сообщений об ошибках, предупреждений и т. Д., Но у меня быстро заканчиваются волосы!

Я установил виртуальный каталог, который запускает приложение asp.net, внутри его собственного пула приложений, но, похоже, это никак не повлияло. Любая помощь будет принята с благодарностью.

Приветствия

Ответы [ 2 ]

0 голосов
/ 09 ноября 2010

Ошибка, по-видимому, на самом деле связана с самим кодом C ++, в нем есть некоторый код для обработки блокировки для многопоточной среды, и это, похоже, не удается. Не уверен, почему это работает на моей локальной машине, а не на среде разработчика, но это другой вопрос.

Спасибо всем

0 голосов
/ 09 ноября 2010

Что вы имеете в виду, когда говорите, что он перестает отвечать? Вы можете попробовать поместить операторы регистрации, которые будут отслеживать ввод / вывод вокруг вызова, чтобы увидеть, где именно он блокируется. Также убедитесь, что вы проверили журнал событий сервера, где записаны необработанные ошибки ASP.NET. В качестве последнего средства вы можете установить средства удаленной отладки Visual Studio (msvsmon.exe) на сервере и выполнить пошаговый код, подключившись к соответствующему процессу w3wp. На самом деле инструменты отладки не требуют установки, достаточно простого копирования (C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger).

...