Странное исключение в веб-службе ASP.NET при работе в IIS

Возникла какая-то странная проблема. Я разрабатываю несколько сложных веб-сервисов, в которых используется VB6.dll. В моем предыдущем посте у меня возникли проблемы с dll, но мы решили их.

Итак, новая проблема: когда я отлаживаю свою службу (те, которые используют dll VB6) на сервере разработки из visual studio - все работает нормально, проблема начинается, когда я публикую свою службу в IIS (я пробовал свой локальный IIS). После этого, когда я вызываю метод.dll (как я понимаю, мне нужно вызвать его по ссылке - и то, что говорит компилятор), я получил исключение:

"System.Runtime.InteropServices.COMException(0x800A000D): несоответствие типов..."

На самом деле это происходит в третьей строке:

Object s = (Object)OrderId;
Object s1 = (Object)lines.Length;
proxy.OrderRead(ref s, ref s1);

OrderId и Legth - целые числа.

Как я понимаю, это исключение, которое исходит из.dll из vb6:/

Какая проблема может быть? Почему он работает при отладке, но не работает в IIS?

1 ответ

При отладке в vb6, IDE зарегистрирует DLL для вас. После публикации вы можете зарегистрировать свою dll vb6 на сервере. Откройте командную строку и измените расположение DLL и запустите regsvr32 myvb6.dll.

Также проверьте эти настройки. http://support.microsoft.com/kb/281630

licensed under cc by-sa 3.0 with attribution.