| |  |
| Sauvez un arbre, mangez un castor |
jeudi 21 août 2008 |
| mercredi 07 février 2007 |
| 20:40 » .NET, web services et proxy - programmation, .NET 1.1 |
Mise en situation : soit une application .NET 1.1 qui effectue des appels à des web services. La partie réseau se passe très bien, malgré la présence d'un proxy par lequel l'application doit passer afin de contacter les web services.
Un beau jour, l'adresse dudit proxy change, et patatras, l'application ne fonctionne plus.
Le plus inquiétant, c'est qu'Internet Explorer est bien configuré pour utiliser ce nouveau proxy, et .NET étant censé se baser sur ces paramètres afin de savoir quel proxy utiliser, ça devrait fonctionner... étrange.
Après quelques essais infructueux, je vais consulter, à l'aide de l'excellentissime Reflector, le code source de la méthode System.Net.WebProxy.GetDefaultProxy(), qui retourne un objet WebProxy correspondant aux paramètres d'Internet Explorer lus dans la base de registres.
Et là stupeur, la méthode ne va pas lire les valeurs sous la clé utilisée par Internet Explorer comme on s'y attendait (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings), mais sous une clé un cran en dessous (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections).
Et c'est là, dans la valeur binaire DefaultConnectionSettings, que se trouvent les paramètres lus par le framework .NET.
Effectivement, cette valeur pointait toujours vers l'ancien proxy, d'où le patatras. Une correction d'adresse de proxy plus tard, tout roulait, ouf ^_^
En espérant que ça vous évitera des prises de têtes :-) (et que ça vous poussera à utiliser Reflector, il est vraiment très très bien, cet outil). |
| permalien & reactions (4) |
| musical cue : Tamba Trío - Más que nada
|
|
|
|