나는 WCF 서비스를 가지고있다. 전화 번호는 UserService
이다. UserService
에는 클래스 라이브러리에 대한 참조가 있습니다. DoWork.dll
이라고합시다. DoWork.dll
에는 CompanyService
이라고하는 다른 서비스에 대한 WCF 서비스 참조가 있습니다.WCF 끝점 구성 오류 : 'contract'속성이 유효하지 않습니까?
이제는 UserService
을 처음 호출 할 때 구성되지 않은 엔드 포인트 오류 메시지가 표시됩니다. 웹 주위를 읽은 후에 바인딩과 클라이언트 정보를 의 web.config
에 넣고 <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"
나에게 오류 표시입니다 : 나는 UserService
WCF 프로젝트에 직접 CompanyService
참조를 추가하는 경우, 지금
The 'contract' attribute is invalid - The value 'CompanyService.ICompanyService' is invalid according to its datatype 'clientContractType' - The Enumeration constraint failed.
을의이 오류가 사라집니다 (분명히). 그러나 나는 이것을 할 필요가 없다. 나는 ICompanyService
계약이 존재하는 네임 스페이스를 완전히 예선하려고 시도했으나 작동하지 않습니다. .suo 파일을 삭제하고 프로젝트를 다시 작성했으나 작동하지 않습니다 (웹의 다른 곳에서 제안 됨). 또한 contract=
을 입력하면 드롭 다운 목록이 표시되지만 CompanyService.ICompanyService
은 찾을 수 없습니다 (UserService
프로젝트에서 직접 서비스를 참조 할 때만).
Tools > WCF Service Configuration Editor
을 사용하여 구성을 시도했지만 도움이되지 않습니다.
나는 모든 것이 잘 작동하는 것처럼 보이지만 intellisense가 나에게 파란색의 구불 구불 한 밑줄과 그 오류 메시지를주고 있다는 사실을 싫어한다. 나는 UserService
이 DoWork.dll
을 참조하고, 계약서를 제대로 볼 수없는 CompanyService
을 참조하기 때문에 이것을 얻으려면 web.config
에 뭔가가 필요하다고 느낍니다.
모든 의견을 보내 주시면 감사하겠습니다. 미리 감사드립니다.
나는 최근에이 문제를 발견했으며 실제로 전체 네임 스페이스를 포함하는 것이 내 문제를 해결하는 것으로 나타났습니다. 이 문제가있는 다른 누구에게나 유용합니다. – Ian