WCF ב-.NET Framework: הגדרות פרוקסי עבור מטא-נתונים ב-HTTP GET
הגדירו את נתיב אחזור מטא-הנתונים הישן של WCF, כולל ייבוא HTTP, בנפרד מלקוח שירות ה-SOAP הסופי.
לאחזור מטא-נתונים של WCF במצב HTTP GET ב-.NET Framework 4.8.1, הגדירו את בקשת המטא-נתונים המוקדמת ולא רק את לקוח ה-SOAP הסופי. וו ההגנה GetWebRequest שלו יכול להחיל מסלול המנוהל בנפרד:
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;
}
}הטיפוסים מגיעים מ-System.Net ומ-System.ServiceModel.Description. בנו את הלקוח הזה עם ה-WebProxy המיועד והשתמשו במצב HttpGet עבור כתובת ה-WSDL. שימו את חשבון הפרוקסי על האובייקט הזה; אימות שרת המטא-נתונים נפרד.
עקבו אחרי הייבוא אם ה-WSDL השורשי מצליח אך הפתרון נכשל מאוחר יותר. WSDL וסכימות אחרים יכולים להשתמש במארחים או בפרוטוקולים שונים.
בחרו את ההרחבה המתאימה למצב אחזור אחר. WS-MetadataExchange משתמש בערוץ, שוו היצירה שלו הוא GetChannelFactory; הגדרות ה-binding והפרוקסי שלו אינן מוחלפות באופן גורף על ידי עקיפת HttpWebRequest.
פרוקסי ברירת מחדל של היישום יכול להספיק כאשר כל הרכיבים הוותיקים המשתתפים אמורים לחלוק אותו. תת-המחלקה נועדה לבעלות מפורשת על מטא-נתונים במשפחת ה-API הזו. קריאות SOAP שנוצרו עדיין זקוקות לתצורת התעבורה שלהן בזמן ריצה. עבור לקוח BasicHttpBinding, בדקו ProxyAddress ו-UseDefaultWebProxy יחד.