2008-11-21 37 views
117

Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ trong WCF là gì? Lựa chọn nào thích hợp hơn trong WCF?Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ?

+0

Ngoài ra, hãy xem Kênh nhà máy - http://stackoverflow.com/questions/1698275/wcf-channelfactory-vs-generating-proxy –

+1

hmm, có lẽ chọn câu trả lời? câu hỏi hay bằng cách –

Trả lời

14

Tham chiếu dịch vụ là giao diện mới hơn để thêm tham chiếu đến tất cả các dịch vụ WCF (chúng có thể không phải là dịch vụ web) trong khi tham chiếu Web đặc biệt quan tâm đến tài liệu tham khảo web ASMX.

Bạn có thể truy cập tham chiếu web qua các tùy chọn nâng cao trong tham chiếu thêm dịch vụ (nếu tôi nhớ chính xác).

Tôi muốn sử dụng tham chiếu dịch vụ vì như tôi đã hiểu, đó là cơ chế mới hơn của cả hai.

+8

Thêm tham chiếu dịch vụ -> Nâng cao -> Thêm tham chiếu web ...không có gì giống như các giải pháp không trực quan. – Jagd

6

Tham chiếu dịch vụ đối phó với điểm cuối và liên kết, có thể định cấu hình hoàn toàn. Chúng cho phép bạn trỏ proxy khách hàng của bạn đến WCF qua bất kỳ giao thức truyền tải nào (HTTP, TCP, Bộ nhớ chia sẻ, v.v.)

Chúng được thiết kế để làm việc với WCF.

Nếu bạn sử dụng một WebProxy, bạn có khá nhiều ràng buộc chính mình để sử dụng WCF qua HTTP

5

điểm khác để đưa vào xem xét là giao diện người dùng mới cho giao diện dịch vụ sẽ cung cấp cho bạn sự linh hoạt hơn rất nhiều vào cách bạn muốn tạo lớp proxy của bạn. Ví dụ, nó sẽ cho phép bạn ánh xạ các hợp đồng dữ liệu với các dll hiện có, nếu chúng khớp nhau (thực tế đây là hành vi mặc định).

88

Câu trả lời cấp thấp ở đây là tham chiếu web sẽ tạo lớp proxy máy khách cho phép mã của bạn nói chuyện với Dịch vụ web được mô tả qua WSDL và giao tiếp qua SOAP hoặc HTTP GET (các áp phích khác cho biết rằng chỉ ASMX, nhưng Web References cũng có thể nói chuyện với các dịch vụ Web dựa trên Java hoặc dựa trên Python hoặc Ruby miễn là tất cả chúng đều nói WSDL và phù hợp với tiêu chuẩn tương thích WS-I).

Tham chiếu dịch vụ sẽ tạo lớp proxy máy khách liên lạc với dịch vụ dựa trên WCF: bất kể dịch vụ WCF đó có phải là Dịch vụ web hay không.

+1

+1 để thêm rằng bất kỳ dịch vụ web chuẩn nào có WSDL được định dạng đúng đáp ứng các tiêu chí –

+0

Vì vậy, tôi có thể thêm tham chiếu dịch vụ vào dịch vụ web dựa trên java không? Liệu nó vẫn có ý nghĩa? vì Java không biết gì về ngăn xếp wcf ... – user20358

+0

có, bạn có thể thêm một tham chiếu dịch vụ vào một dịch vụ web java v.v. nếu nó có một wsdl. Tham chiếu dịch vụ sẽ xử lý nó như một tham chiếu web "cổ điển" trong trường hợp này. –

57

Tham chiếu web cho phép bạn giao tiếp với bất kỳ dịch vụ nào dựa trên bất kỳ công nghệ nào triển khai Hồ sơ cơ bản WS-I 1.1 và hiển thị siêu dữ liệu có liên quan dưới dạng WSDL. Bên trong, nó sử dụng ngăn xếp truyền thông ASMX ở phía máy khách.

Tham chiếu dịch vụ cho phép bạn liên lạc với bất kỳ dịch vụ nào dựa trên bất kỳ công nghệ nào thực hiện bất kỳ giao thức nào được WCF hỗ trợ (bao gồm nhưng không giới hạn trong Hồ sơ cơ bản WS-I). Bên trong, nó sử dụng ngăn xếp giao tiếp WCF ở phía máy khách.

Lưu ý rằng cả hai định nghĩa này đều khá rộng và cả hai đều bao gồm các dịch vụ không được viết bằng .NET. Nó là hoàn toàn có thể (mặc dù không được khuyến khích) để thêm một tài liệu tham khảo Web trỏ đến một dịch vụ WCF, miễn là điểm cuối WCF sử dụng basicHttpBinding hoặc một số biến thể tùy chỉnh tương thích.

Cũng có thể thêm tham chiếu dịch vụ trỏ đến dịch vụ ASMX. Khi viết mã mới, bạn nên luôn sử dụng Tài liệu tham khảo dịch vụ đơn giản chỉ vì nó linh hoạt hơn và được chứng minh trong tương lai.

+0

Có ai có thể giúp tôi bắt đầu cách sử dụng dịch vụ qua Tham chiếu Dịch vụ không? Với tham chiếu web, tôi luôn luôn có vẻ để có thể tìm thấy các chức năng cốt lõi trong một số loại đối tượng dịch vụ. Với tham chiếu dịch vụ, không quá nhiều. Ví dụ: Tôi đang cố sử dụng dịch vụ giá FedEx để nhận giá cho các tùy chọn giao hàng khác nhau của FedEx. Tôi biết có một cuộc gọi getRates() ở đâu đó, nhưng tôi không thể tìm thấy nó với Tham chiếu dịch vụ. –

+0

@BenMills: Tìm kiếm một lớp có hậu tố 'Client'. –

Các vấn đề liên quan