Добавление службы WCF в проект - PullRequest
4 голосов
/ 09 мая 2011

У меня есть проект C # WinForms, который содержит некоторые файлы определений службы WCF, которые я создал в проекте путем добавления стандартных классов (не используя Add Item> WCF Service).

Проект содержит некоторые зависимости, которые требуют от меня сборки проекта для процессоров x86.

Если я отредактирую файл app.config с помощью редактора конфигурации службы WCF и попытаюсь использовать мастер «Создать новую службу ...», а затем перейду к файлу EXE проекта (в папке отладки), я получу ошибку , (который я прочитал, потому что я нацеливаюсь на процессор x86):

Could not load file or assembly 'EXE_FILE_NAME' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Итак, после изменения цели на Все процессоры, повторной компиляции проекта и повторной попытки создать службу в редакторе конфигурации службы WCF я теперь получаю другую ошибку:

Could not load file or assembly 'SOLUTION_NAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

(Чтобы уточнить, я МОГУ все еще компилировать проект при нацеливании на все процессоры, но получаю ошибку во время выполнения из-за зависимости)

Может ли кто-нибудь помочь мне с этой проблемой, поэтому я могу добавить службы, определенные в файле app.config, с помощью мастеров в редакторе конфигурации служб WCF? (Я думаю, что если я добавлю сервисы в Редактор конфигурации сервисов WCF при нацеливании на все процессоры, я могу после этого внести любые изменения, независимо от цели)

1 Ответ

0 голосов
/ 20 августа 2013

При отладке посмотрите на детали исключения. Из того, что вы описали, я предполагаю, что у вас будет ошибка загрузки сборки в журнале Fusion, потому что зависимости службы WCF не могут быть удовлетворены, если посмотреть в расположениях по умолчанию.

Скажем, например, что вы ссылаетесь на MrCritter.MyService.dll, который определяет службу WCF и зависит от чего-то вроде log4net или nHibernate. Пока из этих зависимостей ничего не просачивается в хост WCF (например, возвращая ILog), да, вы сможете нормально скомпилировать, но при попытке создать экземпляр класса службы вы получите ReflectionTypeLoadException, если эти зависимости не находятся где-то в нем. можно найти (например, в каталоге выполнения, в GAC и т. д.).

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