Για έναν πελάτη ASMX που βασίζεται στο HttpWebClientProtocol του .NET Framework, ρυθμίστε τη δημόσια ιδιότητα Proxy πριν από την πρώτη λειτουργία δικτύου:

var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
    Credentials = proxyAccount
};

Το ReportsService είναι η παραγόμενη κλάση και το proxyAccount προέρχεται από την ανάπτυξη. Τα διαπιστευτήρια της υπηρεσίας SOAP είναι ξεχωριστά. Αυτή η ανάθεση δεν χρειάζεται να επαναλαμβάνεται μέσα σε κάθε παραγόμενη λειτουργία.

Αν η αλλαγή αφορά μια υποκείμενη επιλογή αιτήματος ή την ενοργάνωση, χρησιμοποιήστε την παρακάμψιμη μέθοδο GetWebRequest(Uri) της παλαιότερης βάσης. Κρατήστε μια αντίστοιχη μερική δήλωση σε ξεχωριστό μεταγλωττισμένο αρχείο όταν η παραγόμενη κλάση είναι μερική· διαφορετικά ένας κατάλληλος παράγωγος πελάτης μπορεί να παρέχει την παράκαμψη. Καλέστε την υλοποίηση της βάσης και διατηρήστε την κανονική κατασκευή του αιτήματος.

Αυτή η τοποθέτηση επιβιώνει από την ενημέρωση της αναφοράς ιστού: η αναγέννηση μπορεί να αντικαταστήσει χειροκίνητες αλλαγές στο Reference.cs, ενώ οι επεκτάσεις που συντηρούνται χωριστά παραμένουν αναπαραγώγιμες.

Αλλάξτε μόνο τη συμπεριφορά αιτήματος που απαιτείται πραγματικά. Η αντιγραφή μιας λύσης KeepAlive μπορεί να επηρεάσει την επαναχρησιμοποίηση συνδέσεων και τον έλεγχο ταυτότητας που εξαρτάται από την κατάσταση της σύνδεσης.

Αυτό είναι το μοντέλο ASMX/.NET Framework. Το WCF και άλλες στοίβες SOAP έχουν δικές τους διεπαφές μεταφοράς. Επιλέξτε την υποστηριζόμενη ρύθμιση πελάτη πριν εισαγάγετε προσαρμοσμένη επέκταση.

Σχετικά άρθρα