Создайте собственный C++-объект в приложении-службе WCF.

Мое намерение состоит в том, чтобы запустить веб-службу, которая обращается к собственным функциям C++. Поэтому я создал сервисное приложение WCF (которое содержит контракт и реализацию), которое ссылается на оболочку C++/CLI вокруг моего собственного кода C++. Я сделал следующие шаги (после 2b из http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx)

  1. Собственный C++ API экспортируется.
  2. Собственные dll C++ загружаются с "отложенной загрузкой"
  3. Я установил путь для родной dll и ее сторонних dll в Web.config.
  4. определил asp-совместимость в файле web.config
  5. Определен файл Global.asax для доступа к пути загрузки собственных dll.

Я могу запустить службу до тех пор, пока не создам объект-оболочку, который создает собственный объект C++ в конструкторе. Проблема заключается в создании собственного объекта C++. Если я протестирую его с помощью WCFTestClient, я получу неспецифические ошибки:

Не удалось вызвать службу. Возможные причины: Служба отключена или недоступна.

Мой вопрос: что-то не так в этой концепции? Я могу использовать эту оболочку и собственный объект C++, если вызову его из проекта C#. Должен ли я выбрать другой тип проекта, кроме приложения-службы WCF?

Спасибо за помощь!


person user3220513    schedule 14.02.2014    source источник
comment
Я нашел ошибку в файле web.config - File!   -  person user3220513    schedule 15.02.2014


Ответы (1)


Концепция правильная, и она должна работать нормально. Я думаю, что когда служба пытается создать собственный объект C++, возникает ошибка/исключение, что приводит к сбою службы. Я предлагаю вам написать небольшую тестовую программу на C#, которая вызывает C++/CLI DLL для создания собственного C++. Если эта небольшая программа работает нормально, переместите код в свою службу.

Или вы можете отладить сервис, найти фактическую ошибку, это тоже поможет.

person Matt    schedule 14.02.2014