Использование COM-объекта в IIS 7 - PullRequest
0 голосов
/ 27 мая 2010

В настоящее время я перемещаю веб-проект ASP.NET из IIS 6 в среду размещения IIS 7. Кажется, все работает нормально, кроме моих вызовов COM-объекта.

Я прекрасно могу создать экземпляр объекта типа COM, но когда я вызываю один из его методов, IIS падает. Журнал событий сообщает об ошибке «0xc0000374», которая указывает на повреждение кучи.

Когда я запускаю приложение на сервере разработки Visual Studio, все идет хорошо, и код объекта COM выполняется без ошибок. Это также относится к случаю, когда приложение размещается на компьютере с IIS 6.

Я просмотрел все настройки IIS 7 и не нашел ничего настраиваемого для COM-объектов, например, безопасности или ...

Я боролся с этим некоторое время, и у меня нет идей. У кого-нибудь есть опыт развертывания COM-объектов на IIS 7?

Ваша помощь будет очень признательна!

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

Фу ... Я нашел решение !!

Используемый COM-объект Delphi возвращал строку, содержащую путь к созданному файлу изображения. Потому что код Delphi дал эту строку в результате или возвращаемое значение для разработчиков на C #. Память, выделенная для этой переменной, была недоступна для моего кода C #, что привело к повреждению кучи или коду ошибки "0xc0000374".

Я решил эту проблему, переписав код Delphi для принятия переменной ref для пути к файлу, чтобы он записывал в тот же указатель, что и строковая переменная, которую я создал в C #.

К счастью, у меня есть доступ к исходному коду COM-объекта ...

Я получил вдохновение от следующей статьи:

http://blogs.msdn.com/b/asiatech/archive/2009/12/24/net-application-may-crash-on-windows-2008-when-calling-function-from-native-c-dll.aspx

Я надеюсь, что это может помочь другим людям в будущем.

0 голосов
/ 27 мая 2010

COM-объекты должны быть зарегистрированы на сервере, насколько я помню, с помощью regsvr32 или, что еще лучше, добавить их в Панель управления> Администрирование> Службы компонентов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...