2010-02-11 3 views
5

D'une manière assez standard, j'ai créé une référence Web vers un service SOAP dans Jira pour une extension que je construis (Jira est un outil de suivi des problèmes pour ceux qui ne le connaissent pas). Visual Studio génère automatiquement un fichier .Settings et un app.config qui contient l'URL du service Web. Puisque je développe une extension/un plugin pour un produit ALM que nous construisons, le consommateur de l'extension sera celui qui décidera finalement de l'endroit où ce service web pointe, car il sera intégré au l'instance du consommateur de Jira. Supposons que l'URL du service Web soit stockée et extraite d'une base de données.Pouvez-vous modifier l'emplacement/endpoint d'une référence Web dynamique lors de l'exécution dans .NET?

Comment puis-je obtenir le service généré automatiquement pour utiliser une URL à partir d'une base de données au lieu de app.config généré?

Remarque: nous utilisons la version 2.0 du framework, donc WCF n'est pas une option.

Répondre

10

Même dans le service Web 2.0, vous devriez pouvoir modifier la propriété "Url" de votre proxy de service Web à la valeur souhaitée.

+3

@John - ne transpirez pas par-dessus, mec. Nous y avons tous été. –

+1

Où se trouve cette propriété "Url"? – capdragon

+0

. Net 3.5 semble gérer cela complètement différemment. J'utilise cette méthode dans mon ancien projet .Net 2.0. Quelqu'un sait-il comment faire cela avec C# 3.5? Je suppose que je pourrais le faire fonctionner en changeant le paramètre Endpoint.Address, cependant, cela ne fonctionne pas une adresse utilise SSL et l'autre ne fonctionne pas. Comment puis-je réinitialiser le point de terminaison? – RLH

1

Utilisez le constructeur du client qui admet l'uri.

+0

Il ne semble pas être dans le constructeur, j'ai dû utiliser la propriété Url comme suggéré par Otávio –

+1

Vous l'avez dans le constructeur, mais il est plus facile de le faire avec la propriété url comme suggéré par Otavio: HelloWorld.HelloWorldClient bonjour = nouveau HelloWorld.HelloWorldClient ("BasicHttpBinding_IHel loWorld", nouveau EndpointAddress ("http: // localhost: 8888/BasicHost/HelloWorld")); –

Questions connexes