IWebProxy .NET dùng chung có an toàn với các yêu cầu đồng thời không?
Phân biệt hợp đồng đồng thời của một triển khai IWebProxy với độ trễ do tự động phát hiện proxy gây ra.
IWebProxy mô tả một chính sách proxy. Nó không cung cấp cho mọi triển khai cùng những bảo đảm đồng thời. Trước khi chia sẻ một thực thể giữa các tác vụ công nhân, hãy xác định triển khai cụ thể của nó và môi trường thực thi mà nó thuộc về.
Giao diện hiển thị các truy vấn tuyến đường phụ thuộc đích đến và thông tin xác thực. Một triển khai tùy chỉnh có thể tham chiếu địa chỉ cố định, trạng thái có thể thay đổi hoặc cấu hình tự động. Những lựa chọn đó ảnh hưởng đến cả tính an toàn và hiệu năng.
Giữ các thay đổi cấu hình ngoài quá trình xử lý yêu cầu
Tránh dùng một đối tượng proxy dùng chung như bản nháp: thay đổi địa chỉ hoặc thông tin xác thực của nó cho công việc A trong khi công việc B đang chọn tuyến đường khiến quyền sở hữu trở nên mơ hồ. Hãy cấu hình một chính sách trước khi bàn giao cho ứng dụng khách. Với khối lượng công việc có tài khoản hoặc điểm cuối proxy khác nhau, hãy dùng cấu hình máy khách được sở hữu riêng.
Tài liệu WebProxy lịch sử không đưa ra bảo đảm an toàn luồng cho các thành viên thực thể. Hãy áp dụng hợp đồng đó cho triển khai tương ứng. Nếu cần đồng bộ hóa, mọi trình đọc và trình ghi đều phải tham gia; khóa bọc không thể điều phối những người gọi dùng trực tiếp đối tượng gốc.
Một khoảng dừng dài trong GetProxy có thể thay vào đó liên quan đến phát hiện hoặc đánh giá PAC. Microsoft ghi nhận việc phát hiện gây chặn đối với WinHTTP; lời giải thích đó áp dụng khi ứng dụng khách dùng phần phụ trợ đó. Đo tìm kiếm tuyến đường riêng với thời gian kết nối và phản hồi. Việc tuần tự hóa một tìm kiếm chậm chỉ có thể tạo ra một hàng đợi.
Một điểm cuối cố định có thể loại bỏ việc phát hiện khi dự định tuyến đường cố định. Việc chụp một URI từ chính sách hệ thống đang thay đổi cũng loại bỏ các quyết định tương lai của nó. Hãy giữ sự phân biệt đó khi bảo trì mã cũ; dùng HttpClient và cấu hình trình xử lý được hỗ trợ của nó cho công việc HTTP mới.