Tôi có dịch vụ WCF, hãy gọi số UserService
. UserService
có tham chiếu đến thư viện lớp học. Hãy gọi nó là DoWork.dll
. Các DoWork.dll
có một tài liệu tham khảo dịch vụ WCF đến một dịch vụ khác nhau, chúng tôi sẽ gọi CompanyService
.Lỗi cấu hình điểm cuối WCF: Thuộc tính 'hợp đồng' không hợp lệ?
Bây giờ, khi tôi lần đầu tiên thử gọi số UserService
tôi sẽ nhận được thông báo lỗi không được cấu hình điểm cuối. Sau khi đọc trên web tôi đã tìm thấy rằng tôi cần phải thêm các thông tin ràng buộc và thông tin khách hàng CompanyService
vào số web.config
của UserService
dưới nút <system.serviceModel>
.
Ở đây là:
<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>
Tôi có vấn đề là contract="CompanyService.ICompanyService"
chỉ cho tôi lỗi:
The 'contract' attribute is invalid - The value 'CompanyService.ICompanyService' is invalid according to its datatype 'clientContractType' - The Enumeration constraint failed.
Bây giờ, nếu tôi thêm các CompanyService
tham khảo trực tiếp đến dự án WCF UserService
, các lỗi biến mất (rõ ràng). Tuy nhiên, tôi không nên làm điều này. Tôi đã thử hoàn toàn đủ điều kiện không gian tên hợp đồng ICompanyService
và điều đó cũng không hoạt động. Tôi đã xóa tập tin .suo và xây dựng lại dự án và nó cũng không hoạt động (được đề xuất ở đâu đó trên web). Ngoài ra, nếu tôi nhập contract=
, tôi nhận danh sách thả xuống nhưng không tìm thấy CompanyService.ICompanyService
(chỉ khi tôi tham khảo dịch vụ trực tiếp trong dự án UserService
).
Tôi đã thử định cấu hình nó bằng cách sử dụng Tools > WCF Service Configuration Editor
và điều đó không có tác dụng.
Tôi nên lưu ý rằng mọi thứ dường như hoạt động tốt, nhưng tôi không thích thực tế là intellisense đưa cho tôi đường gạch dưới màu xanh nhạt và thông báo lỗi đó. Tôi có cảm giác tôi cần một thứ gì đó khác trong số web.config
để làm việc này kể từ khi tham chiếu UserService
tham chiếu đến số DoWork.dll
, do đó tham chiếu đến CompanyService
mà hợp đồng mà tôi không thể thấy chính xác.
Bất kỳ đề xuất nào được đánh giá cao. Cảm ơn trước.
Tôi đã xem xét điều này gần đây và thấy rằng thực sự bao gồm cả không gian tên đầy đủ đã góp phần vào vấn đề của tôi. Hữu ích để lưu ý cho bất cứ ai khác với vấn đề này. – Ian