Tôi đặt cùng một danh sách một số resources để viết một kênh vận chuyển WCF có thể hữu ích. Không phải tất cả các liên kết vẫn hoạt động, thật không may, nhưng hầu hết là và có một số công cụ hữu ích trong đó.
Tôi cũng đặt short introduction vào cách một số phần khớp với nhau có thể giúp ích một chút.
Điều tôi không nhận được trong câu hỏi của bạn: Bạn đề cập đến rằng bạn muốn chạy HttpBinding trên đầu trang của vận tải của bạn. Bạn có nghĩa là bạn muốn sử dụng kênh vận chuyển http WCF trên đầu API tùy chỉnh giống như socket của bạn thay vì API ổ cắm cửa sổ thông thường?
Nếu có, thì không, điều đó sẽ không hoạt động vì nhiều lý do khác nhau. Một trong số đó là các ràng buộc và các kênh không thực sự gắn trực tiếp với nhau, thay vào đó định nghĩa liên kết (nghĩa là các phần tử ràng buộc được bao gồm trong nó) điều khiển cách ngăn xếp kênh được tạo ra trong thời gian chạy cho dịch vụ/khách hàng của bạn. Vì vậy, về cơ bản, khi viết kênh truyền tải tùy chỉnh, bạn sẽ tạo lớp có nguồn gốc TransportBindingElement tùy chỉnh của riêng mình mà bạn có thể sử dụng trong liên kết tùy chỉnh để sử dụng kênh truyền tải của riêng mình thay vì một trong những kênh mặc định (như HttpTransport). Tuy nhiên, lưu ý rằng kênh truyền tải là, dù sao, dưới cùng của ngăn xếp kênh (nghĩa là không có gì bên dưới nó), vì vậy bạn không thể xếp lớp HttpTransport lên trên vận tải tùy chỉnh của bạn (ngay cả khi giới hạn API không có) .
Nói cách khác, nếu bạn muốn nói HTTP, bạn cần phải nướng nội dung HTTP vào triển khai kênh tùy chỉnh của mình. Tuy nhiên, không có gì ngăn bạn sử dụng phần còn lại của các ràng buộc http/ws http mặc định trên đầu kênh của riêng bạn, miễn là bạn phơi bày các hình dạng kênh phù hợp.
bài đăng và liên kết rất đẹp! –
liên kết ở trên không hoạt động. – vikky