17/11/2008

Web services en .Net et erreur HTTP 403, arggg...

Vous utilisez un web service depuis une application cliente en .Net 2.0, et lorsque vous faite l'appel à votre web services préféré. Boum !!!
Exception, erreur : HTTP 403 Forbiden.
Gloups...

Un petit test rapide avec Internet explorer vous montre que votre web service est bien accessible avec IE.
Regloups...

Si depuis IE, dans la boite de dialogue Outils/options Internets/Connexions/Paramètres du réseau... vous désactivez l'option "utilisez un serveur proxy ..."

Hop, ça marche.

He bien il a de fortes chances pour que votre problème soit lié à l'utilisation des règles d'exception qui ne sont pas prise en compte par le .Net Framework 2 alors que les autres paramètres de IE sont utilisés par défaut pour établir votre connexion.
Il faut donc écrire explicitement dans votre fichier .config les règles d'exclusion des url qui ne doit pas utilisées le serveur proxy.

Dans mon cas par exemple j'avais une url de la forme : http://tagada.mef:82/wsTest.asmx
Dans IE une règle d'exception : *.mef
Donc normalement mon serveur tagada.mef ne devrait pas utilisée le proxy, hé bien pour IE c'est vrai, mais pour mon appli c'est faux.
Donc petite modification dans le fichier .config de mon appli:

<system.net>
<defaultproxy>
<bypasslist>
<add address="\.mef$" />
</bypasslist>
</defaultproxy>
</system.net >

Et voilà ça marche.
Ps) vous pouvez être plus « brutale » et modifier directement le fichier machine.config de votre PC client.

Aucun commentaire: