Это старая тема, но поскольку я столкнулся с той же проблемой сегодня, я хочу поделиться своим исправлением.
Для меня проблема заключалась в том, что общая сборка была правильно добавлена в оба проекта (сервис и клиент), но на стороне обслуживания эта общая сборка ссылалась на другую сборку, которой не было на стороне клиента.
Я заметил ошибку при использовании Svcutil.exe с приведенным ниже оператором.Откройте командную строку в папке, где находится SvcUtil.exe (для меня это C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.1 Tools) и выполните оператор ниже после изменения нижесегменты (помеченные <>):
SvcUtil.exe /t:code /language:cs /r:<path of the .dll that contains the types to reuse on client side> <wcf service url>
убедитесь, что .dll типов, которые вы хотите использовать физически, существуют в папке / bin (возможно, там нет из-за ошибки сборки, ...),При необходимости скопируйте правильную сборку из службы.
SvcUtil попытается сгенерировать контракты на обслуживание и / или данные на основе документа WSDL из указанной службы.Тег / r указывает, где находится DLL на стороне клиента, которая содержит повторно используемые типы (так же, как вы указываете при использовании «Добавить ссылку на службу»).
, если существует проблема с повторным использованием типов, это приведет кбудет отображаться в командной строке при выполнении инструкции.
Это может указать вам правильное направление, в котором проблема заключается в вашей общей сборке.