2008-11-18 9 views
3

Si j'ai le paramètre suivant dans mon fichier app.config. C'est un paramètre dont j'ai besoin pour m'assurer que mon client WCF peut négocier le serveur proxy par défaut.Dans .NET, Quel est l'équivalent au runtime de mon paramètre app.config?

<system.net> 
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy> 
</system.net> 

Malheureusement, je ne peux pas ajouter le fichier app.config dans mon environnement. Comment puis-je garantir ces paramètres en les définissant lors de l'exécution?

Répondre

0

Je pense que ce que vous faites est de créer un objet System.Net.WebProxy, puis réglez e variables appropriées, puis définissez le System.Net.WebRequest.DefaultWebProxy:

System.Net.WebProxy proxy = new WebProxy(); 
proxy.UseDefaultCredentials = true; 
WebRequest.DefaultWebProxy = proxy; 

Ce type de poste de parle de la chose: Link

Hope that helps!

+0

Ceci n'est pas une solution WCF, n'est-ce pas? Comment créer un proxy client WCF avec les valeurs par défaut? –

+0

Cela a déplacé mon problème.Maintenant, je reçois: "Code d'erreur TCP 10061: Aucune connexion n'a pu être établie car la machine cible l'a activement refusée". Malheureusement, il n'y a rien de mal avec le service. –

-2

Quel que soit le nom défini de votre exécutable (et non une bibliothèque dll) ensemble est, ajouter un « .config » à la fin ...

donc si votre exécutable doit être

AcmeWidgets.EastCoast .MyApplicationName.exe

Alors le app.config va se renommé

AcmeWidgets.EastCoast.MyApplicationName.exe.config

Cependant, je ne vous recommande pas de tenter de modifier dynamiquement ces paramètres (dans le fichier de configuration sur le disque) à l'exécution ...

à la place, pouvez-vous coder votre application afin qu'elle remplisse à la place et utilise des variables statiques à partir de ces paramètres de configuration ... et ensuite mettre en œuvre la fonctionnalité dynamique "changer la valeur" afin qu'il modifie ces variables statiques ...

De cette façon, vous pouvez toujours "affecter" le comportement d'exécution de manière dynamique, mais évitez les tracas d'écriture sur le fichier de configuration, et la gestion Ops peut gérer les valeurs "par défaut" dans le fichier de configuration en l'éditant ...

+0

Je n'ai pas accès au fichier .exe. Je suis une DLL réutilisable. La DLL est hébergée dans le navigateur. Je n'ai pas accès au fichier app.config. –

+0

Les DLL n'ont pas de fichiers de configuration ... le fichier de configuration est un par processus du système d'exploitation ... et il y a un et un seul processus par exécutable. Chaque application qui utilise votre DLL aura son propre fichier de configuration, avec un nom différent. –

+0

Pouvez-vous utiliser la fonctionnalité Paramètres de l'application pour cela? (Il est dans l'écran Project Proprties de la dll, onglet Paramètres) –

0

Sur la page de propriétés de votre projet, il devrait y avoir un onglet de paramètres. Tout ce que vous y mettez existe réellement dans un fichier * .settings dans le projet, mais sera également inclus dans le fichier app.config automatiquement lors du déploiement. Pouvez-vous faire des changements là-bas?

+0

Non, je suis une DLL réutilisable. Je ne parviens pas à utiliser app.config. –

0

J'imagine que vous utilisez une liaison qui hérite de WSHttpBindingBase. Si c'est le cas, vous pouvez également essayer de définir la propriété 'UseDefaultWebProxy' dans le code. Quelque chose comme ceci:

myWSHttpBinding.UseDefaultWebProxy = True; 

Edit: BasicHttpBinding a aussi la même propriété.

+0

Non, ça ne le fait pas. Il va au bon proxy, mais n'utilise pas les informations d'identification par défaut. Échec avec un échec d'authentification 407 –

Questions connexes