WCF trên .NET Framework: cài đặt proxy cho siêu dữ liệu HTTP GET
Cấu hình đường dẫn truy xuất siêu dữ liệu WCF cũ, bao gồm cả nhập HTTP, tách biệt với ứng dụng khách dịch vụ SOAP cuối cùng.
Để truy xuất siêu dữ liệu WCF ở chế độ HTTP GET trên .NET Framework 4.8.1, hãy cấu hình yêu cầu siêu dữ liệu trước đó chứ không chỉ ứng dụng khách SOAP cuối cùng. Hook GetWebRequest được bảo vệ của nó có thể áp dụng một tuyến đường được quản lý riêng:
class RoutedMetadataClient : MetadataExchangeClient
{
private readonly IWebProxy route;
public RoutedMetadataClient(IWebProxy route)
{
this.route = route;
}
protected override HttpWebRequest GetWebRequest(
Uri location, string dialect, string identifier)
{
HttpWebRequest request =
base.GetWebRequest(location, dialect, identifier);
request.Proxy = route;
return request;
}
}Các kiểu đến từ System.Net và System.ServiceModel.Description. Xây dựng ứng dụng khách này với WebProxy dự kiến và dùng chế độ HttpGet cho URL của WSDL. Đặt tài khoản proxy trên đối tượng đó; xác thực máy chủ siêu dữ liệu là riêng biệt.
Hãy theo các nhập nếu WSDL gốc thành công nhưng việc phân giải sau đó thất bại. Các WSDL và lược đồ khác có thể dùng máy chủ hoặc giao thức khác.
Chọn tiện ích mở rộng tương ứng cho chế độ truy xuất khác. WS-MetadataExchange dùng một kênh, mà hook tạo của nó là GetChannelFactory; cài đặt binding và proxy của nó không được thay thế phổ quát bằng việc ghi đè HttpWebRequest.
Một proxy ứng dụng mặc định có thể đủ khi mọi thành phần cũ tham gia cần chia sẻ nó. Lớp con dành cho quyền sở hữu siêu dữ liệu rõ ràng trong họ API này. Các lệnh gọi SOAP được tạo vẫn cần cấu hình vận chuyển thời gian chạy riêng. Với ứng dụng khách BasicHttpBinding, hãy kiểm tra ProxyAddress và UseDefaultWebProxy cùng nhau.