Как я могу избавиться от сообщения об ошибке "целевая сборка не содержит типов служб" в VS2008?


У меня есть клиент / сервер wcf приложение

мой исполняемый файл не определяет каких-либо ServiceContract, Это даже не имеет ссылки на System.ServiceModel (но вместо этого ссылку на сборку, которая содержит логику подключения к серверу)

у меня есть другая сборка, на которую ссылается мой EXE, который содержит ServiceContract.

Он работал нормально. Вчера я много играл с настройками моего проекта (частичное доверие, полное доверие, параметры развертывания и так далее) и теперь, каждый раз, когда я запускаю свой клиент, у меня есть следующее окно сообщения:

узел службы Microsoft WCF
Целевая сборка не содержит типов служб.
Возможно, потребуется изменить политику безопасности доступа к коду этой сборки.

затем VS зависает на 1 минуту, и в конечном итоге позволяет мне отлаживать мою программу, как обычно.

Я нашел сообщение об этом проблема, но решение не применять в моей ситуации. Есть идеи?

8 66

8 ответов:

это всегда так. Вы ищете в течение 2 часов, вы в конечном итоге отправляете сообщение на SO, а через 5 минут находите ответ.

на параметры WCF вкладка свойств проекта, определяющая ServiceContract, есть флажок с надписью "запустить узел службы WCF при отладке другого проекта в том же решении", который я снял.

Я не знаю, как это было проверено в первую очередь.

в любом случае, это решается моя проблема. Смотрите ссылка MSDN для этого проекта.

на всякий случай, если кто-то еще ищет ответ, другая причина этой ошибки может быть, если у вас есть App.config файл в проекте, который является библиотекой классов, которая имеет .

я переместил служебный код из проекта, который был исполняемым в другой проект, но случайно оставил старый . Мой новый проект, который был консольным приложением программно настроен и запущен WCF, а потому старый App.config файл был в ссылке сборка, я бы получил это загадочное диалоговое окно даже при отладке консольного приложения.

потребовалось около 12 часов, чтобы отследить это, так как я не понимал, что VS debugger проверяет все ссылочные сборки для приложения.конфигурация, в которой настроены службы WCF.

чтобы определить проект с этой проблемой найти строку 3D9AD99F-2412-4246-B90B-4EAA41C64699 в файлах вашего проекта.

пример: <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

затем выключите опцию проекта "параметры WCF / запуск узла службы WCF при отладке другого проекта в том же решении"

некоторые блоги говорят, что это могло произойти из-за копирования проекта из другой ветви, которая переопределяет GUID... так что просто удалите их, как описано в этот блог.

эта ошибка также может быть вызвана неправильным именем службы в файле конфигурации:

<system.serviceModel>
    <services>
      <service name="MyServiceLibrary.WrongServiceName">
...

Проверьте файл конфигурации и убедитесь, что имя службы правильно.

старая нить. Просто удалите все аргументы командной строки из раздела отладки в разделе Параметры. Это мне помогло.

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

когда вы сталкиваетесь с этой конкретной проблемой, вы попробуйте запустить сервер и клиентское приложение как администратор, и изменить свойства WPF проекта.

при нажатии на свойства WPF проекта, вы найдете опцию сборки. В опции сборки, существует опция под названием ЦЕЛЬ ПЛАТФОРМЫ, в котором вы можете изменить цель платформы на x86. Также обратите внимание, что в случае x84, вам нужно установить его в x84.

теперь Запустите свой проект из консоли, т. е. перейти в папку, где ваши проекты сохраняются и в в бин клиента, вы найдете папку debug где вы получите ваше консольное приложение. Теперь вы должны быть в состоянии работать приложение успешно работает.

добавление другого решения, так как это сообщение, кажется, имеет несколько причин. Удаление следующего идентификатора GUID из тега ProjectTypeGuids в файле проекта решило проблему.

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699}</ProjectTypeGuids>