Катастрофический сбой в веб-службе IIS при вызове метода COM - PullRequest
1 голос
/ 22 марта 2012

Возможно худший тип сообщения об ошибке, которое можно увидеть. Ничего не значит, может быть связано со всем ...

Я пытаюсь создать веб-службу (WS) на IIS 7.5 (я изначально пробовал службы WCF, но та же история) WS использует COM DLL, которая успешно зарегистрирована, и даны разрешения безопасности COM.

Когда я запускаю WS с использованием Visual Studio Development Server, все в порядке, я получаю результаты в соответствии с запросом. Но когда я пытаюсь развернуть WS в IIS, я получаю

System.Runtime.InteropServices.COMException: Catastrophic failure

Мой компьютер имеет Windows Server 2008 R2 Standard, x64. Я должен подчеркнуть: я разрабатываю (с помощью Visual Studio 2010 Ultimate) , тестирую (с помощью Visual Studio Development Server) и развертываю (с помощью IIS 7.5) на тот же компьютер .

Я думал, что проблема может быть связана с 32-64-битной несовместимостью , так как мой COM поддерживает 32-битную. Поэтому я изменил настройки пула приложений, чтобы включить 32-разрядные приложения, изменил целевой объект платформы на x86 в Visual Studio, повторно развернул WS, но ни один из них не помог.

Мой вопрос:

Как WS может успешно работать на VS Development Server, но не работать на IIS? Что еще я должен изменить в настройках IIS?

1 Ответ

1 голос
/ 29 марта 2012

Это действительно помогает проконсультироваться с производителем COM DLL.Они дали четкую процедуру установки DLL, которую я как-то пропустил.

Мораль истории: хотя ваш веб-сервис или веб-сайт успешно работают под Visual Studio Development Server, это не обязательно означает, что вы правильно настроили все параметры для COM DLL.

Выможно начать проверку следующих проблем:

  • Зарегистрировать COM DLL
  • Проверить параметры конфигурации с помощью dcomcnfg
  • Если ваша DLL не отображается вdcomcnfg списки, то, вероятно, вы не правильно его зарегистрировали.Некоторые записи редактора реестра, вероятно, отсутствуют.
  • Проверьте параметры пула приложений IIS
  • Возможно, вам придется выполнить олицетворение в web.config
  • Проверьте средство просмотра событий.Это может включать некоторые важные подсказки

В моем случае я играл со всеми этими предметами, но никогда не в правильной последовательности.Наконец-то пришла помощь от продюсера, который показывал правильный путь.

...