Отладка таинственного сбоя IIS - PullRequest
0 голосов
/ 16 июля 2010

У меня есть веб-приложение ASP.NET MVC, которое интегрирует нашу управляемую библиотеку C #, которая загружает неуправляемые плагины для некоторой обработки файлов. Эти неуправляемые плагины, в свою очередь, полагаются на несколько сторонних библиотек, чтобы выполнять свою грязную работу; некоторые из них вызывают сбой IIS.

Мы используем точно такую ​​же библиотеку в настольном приложении, которое способно обрабатывать файлы очень хорошо. Файлы также хорошо обрабатываются при работе на веб-сервере Cassini, поставляемом с Visual Studio 2008 (IIS и Cassini запускаются из одной и той же папки на моем локальном компьютере).

Я провел Анализ сбоев с помощью Debug Diagnostic (img) , из которого я не могу извлечь какую-либо полезную информацию.

Я немного использовал procxp, чтобы посмотреть, есть ли какие-либо неудачные попытки доступа к файлу или реестру, которые могут вызывать проблемы, но их нет. Я не видел ни одного, но мог бы легко пропустить их, учитывая количество строк, производимых в такой регистрации.

Я настроил пул приложений для использования учетной записи домена и назначил эту учетную запись администратором на моем компьютере, думая, что это может быть проблема с разрешениями, но не повезло. Существуют ли другие ограничения доступа в IIS, о которых я не знаю?

Предложения? Статьи? Инструменты? Voodoo

РЕДАКТИРОВАТЬ: Мне удалось отладить это до процедуры инициализации сторонней библиотеки. Поскольку библиотека работает нормально на других хостах, я заподозрил либо проблему с разрешениями, либо проблему с памятью. Оказалось, что ограничение размера стека при работе под IIS. См. Размеры стека в IIS - влияет на ASP.NET

1 Ответ

2 голосов
/ 16 июля 2010

Похоже, вы должны попытаться включить 32-разрядные приложения в пуле приложений.Interop не очень хорошо работает с двоичными файлами, скомпилированными для 32-битных систем, если вы используете 64-битные.

...