Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ?


Câu trả lời:


102

Câu trả lời cấp thấp ở đây là Tham chiếu web sẽ tạo một 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 chỉ ra rằng đó chỉ là ASMX, nhưng Tài liệu tham khảo web cũng có thể nói chuyện với 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 về WSDL và tuân thủ tiêu chuẩn tương tác WS-I).

Tham chiếu dịch vụ sẽ tạo một 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 tiêu chuẩn nào có WSDL được định dạng chính xác đều đáp ứng các tiêu chí
sidney.andrews

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

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

+1 để nói rằng Dịch vụ web có thể sử dụng các dịch vụ web được mô tả bởi WSDL, cũng như ASMX. Trên thực tế, tôi có một lớp kinh doanh có tham chiếu web và tham chiếu dịch vụ. Tham chiếu web sử dụng dịch vụ web WSDL, trong khi tham chiếu dịch vụ sử dụng dịch vụ ASMX.
Jagd

67

Tham chiếu web 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 triển khai Cấu hình 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. Trong nội bộ, nó sử dụng ngăn xếp giao tiếp ASMX ở phía khách hàng.

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). Trong nội bộ, 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.

Hoàn toàn có thể (mặc dù không được khuyến nghị) để thêm Tham chiếu web trỏ đến dịch vụ WCF, miễn là điểm cuối WCF sử dụng basicHttpBindinghoặ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 phải luôn sử dụng Tham chiếu dịch vụ đơn giản vì nó linh hoạt hơn và không bị ràng buộc trong tương lai.


1
Bất cứ ai cũng có thể giúp tôi bắt đầu về cách tiêu thụ một dịch vụ thông qua Dịch vụ tham khảo? Với Web Reference, tôi dường như luôn 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 một tài liệu tham khảo dịch vụ, không quá nhiều. Ví dụ: tôi đang cố gắng sử dụng dịch vụ giá của FedEx để lấy giá cho các tùy chọn vận chuyển 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ụ.
Ben Mills

@BenMills: Tìm kiếm một lớp có Clienthậu tố.
Christian Hayter

17

Tham chiếu dịch vụ là giao diện mới hơn để thêm các tham chiếu cho tất cả các cách 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 liên quan đến các tham chiếu web ASMX.

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

Tôi sử dụng tài liệu tham khảo dịch vụ bởi vì theo 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

7

Tài liệu tham khảo dịch vụ xử lý các điểm cuối và các ràng buộc, hoàn toàn có thể cấu hình. Họ cho phép bạn trỏ proxy máy khách của mình đến WCF thông qua bất kỳ giao thức truyền tải nào (HTTP, TCP, Bộ nhớ dùng chung, v.v.)

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

Nếu bạn sử dụng WebProxy, bạn sẽ bị ràng buộc khá nhiều khi sử dụng WCF qua HTTP


5

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.