Φόρτωση προσαρμοσμένης μονάδας διαμεσολαβητή στο .NET Framework
Ελέγξτε τη φόρτωση τύπων, τη διαμόρφωση του εκτελέσιμου και τις παρακάμψεις αιτημάτων όταν μια μονάδα defaultProxy φαίνεται να μην έχει αποτέλεσμα.
Για μια εφαρμογή .NET Framework, καταχωρίστε τη μονάδα διαμεσολαβητή κάτω από το configuration/system.net/defaultProxy:
<defaultProxy>
<module type="Company.Network.RoutingProxy, Company.Network" />
</defaultProxy>Το πρώτο όνομα είναι ο τύπος και το δεύτερο η ταυτότητα συγκρότησης, όχι μια διαδρομή DLL. Το συγκρότημα και οι εξαρτήσεις πρέπει να φορτώνονται με τους κανονικούς κανόνες της εφαρμογής.
Ελέγξτε δύο πύλες. Πρώτον, το runtime πρέπει να κατασκευάσει έναν δημόσιο τύπο που υλοποιεί το IWebProxy μέσω κατασκευαστή χωρίς παραμέτρους. Διατηρήστε τις εσωτερικές εξαιρέσεις από αποτυχίες φόρτωσης ή κατασκευής· προηγούνται οποιασδήποτε σύνδεσης TCP διαμεσολαβητή. Για έκδοση desktop, επιβεβαιώστε ότι η καταχώριση έφτασε στη διαμορφωμένη ανάπτυξη του εκτελέσιμου. Με το ClickOnce, συγκρίνετε το .exe.config που δημιουργήθηκε, δημοσιεύτηκε και εγκαταστάθηκε. Το App.config μιας βιβλιοθήκης κλάσεων συνήθως δεν διαμορφώνει τη διεργασία φιλοξενίας της.
Δεύτερον, το αίτημα πρέπει να χρησιμοποιεί αυτή την προεπιλογή. Μια ρητή ανάθεση διαμεσολαβητή μπορεί να την αντικαταστήσει, και μια άλλη στοίβα HTTP μπορεί να μην διαβάζει αυτό το μοντέλο διαμόρφωσης. Μέσα στη μονάδα, τα GetProxy και IsBypassed χρειάζονται συνεπείς αποφάσεις, με απόλυτο URI διαμεσολαβητή που χρησιμοποιεί το σωστό σχήμα και θύρα.
Κάντε συνεπή και τη συμπεριφορά διαπιστευτηρίων. Ένας getter που δημιουργεί έναν κωδικοποιημένο λογαριασμό και αγνοεί τον setter του μπορεί να ακυρώσει μεταγενέστερη διαμόρφωση ακόμη και μετά την επιτυχή φόρτωση.
Αυτός είναι ένας μηχανισμός συντήρησης για το .NET Framework. Χρησιμοποιήστε τη διαμόρφωση διαμεσολαβητή που υποστηρίζει ο πελάτης δικτύου στο τρέχον .NET αντί να περιμένετε αυτή η παλαιότερη καταχώριση system.net να διέπει κάθε HttpClient.