У меня есть служба WCF, назовем ее UserService
. UserService
имеет ссылку на библиотеку классов. Назовем его DoWork.dll
. DoWork.dll
содержит ссылку службы WCF на другую службу, которую мы назовем CompanyService
.
Теперь, когда я впервые попытался вызвать UserService
, я получил сообщение об ошибке конечной точки, не настроенной. Почитав в Интернете, я обнаружил, что мне нужно добавить привязки CompanyService
и информацию о клиенте в web.config
UserService
под узлом <system.serviceModel>
.
Вот:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IComapnyService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint name="BasicHttpBinding_ICompanyService"
address="http://it-dev.company.local:81/Project/Copmpany/CompanyService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IComapnyService"
contract="CompanyService.ICompanyService" />
</client>
У меня проблема в том, что contract="CompanyService.ICompanyService"
показывает мне ошибку:
Атрибут «контракт» недействителен — значение «CompanyService.ICompanyService» недопустимо в соответствии с его типом данных «clientContractType» — ошибка ограничения перечисления.
Теперь, если я добавлю ссылку CompanyService
непосредственно в проект UserService
WCF, ошибка исчезнет (очевидно). Однако я не должен был этого делать. Я попытался полностью определить пространство имен, в котором находится контракт ICompanyService
, и это тоже не работает. Я удалил файл .suo и перестроил проект, и это тоже не работает (предложено в другом месте в Интернете). Кроме того, если я наберу contract=
, я получу раскрывающийся список, но CompanyService.ICompanyService
нигде не будет найден (только когда я ссылаюсь на службу непосредственно в проекте UserService
).
Я пытался настроить его с помощью Tools > WCF Service Configuration Editor
, и это не помогает.
Я должен отметить, что все, кажется, работает нормально, но мне не нравится тот факт, что intellisense дает мне синее волнистое подчеркивание и это сообщение об ошибке. У меня есть ощущение, что мне нужно что-то еще в web.config
, чтобы заставить это работать, поскольку UserService
ссылается на DoWork.dll
, который, в свою очередь, ссылается на CompanyService
, чей контракт я не вижу должным образом.
Любые предложения очень ценятся. Заранее спасибо.