2009-12-09 3 views
2

Dans la banque je travaille tous les postes de travail clients ont .Net 2 installé il est hors de mon contrôle d'influencer ou d'obtenir une version plus récente du cadre installé du côté client. Sur le serveur, j'ai plus de contrôle et je peux écrire un service WCF .Net 3.5 si je le souhaite. J'ai un gros client existant que je voudrais refactoriser et déplacer son code d'accès aux données (Oracle Odp.net) vers le serveur derrière un service (pour supprimer la dépendance du poste de travail client sur le client Oralce 10g). Ma question est de savoir si je mets cette couche de données derrière un service WCF puis-je y accéder à partir d'une application GUI .Net 2.0 sur le client? ou est-ce que le poste client a également besoin de .net 3.0/3.5? Je n'ai pas utilisé WCF beaucoup autre que quelques prototypes d'applications sur ma machine dev connectant à un serveur Windows 2003 qui a .Net 3.5 SP1 donc je recherche des conseils.Une application cliente Winforms .Net 2.0 peut-elle se connecter à un service WindowsF .Net 3.5 WCF? - conseil architectural requis

Une autre considération est que IIS est considérée comme une technologie de lumière rouge (interdite sans dispense) dans cette banque

Mise à jour

Je mon service WCF en cours d'exécution hébergé dans une application console, j'echo à la sortie de la console lorsqu'il reçoit et traite un appel. Sur mon client. Net 2 fin, j'ai choisi ajouter référence Web et passer l'appel. Mais j'obtiens une erreur, même si j'obtiens l'erreur que l'écho à consolider est toujours généré sur la fin du serveur donc il est reçu juste pas retourné correctement. L'erreur est:

Exception: La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur une réception.

Exception interne: impossible de lire les données de la connexion de transport: une connexion existante a été fermée de force par l'hôte distant.

Comment résoudre ce problème?

+0

J'ai le même cas. Avez-vous découvert comment héberger votre service qui peut être consommé par .net 2.0 winform (étant donné que nous ne pouvons pas utiliser IIS). Merci – Sheraz

Répondre

8

Si le service WCF expose un point de terminaison basicHttpBinding, alors .NET 2.0 (ou tout autre code utilisant SOAP) devrait pouvoir le consommer sans problème.

+0

Dammit - me battre de quelques secondes ...;) – ZombieSheep

+0

Vous pouvez également utiliser une REST Biding et y accéder avec WebClient. –

+0

Quelle bibliothèque/classe .Net 2 dois-je utiliser pour consommer un service WCF avec un point de terminaison basicHttpBinding? un exemple de code serait excellent. – m3ntat

1

Serait-ce une option pour vous d'exposer les services via un basicHttpBinding, émulant le comportement de style asmx? Je crains que ce soit la meilleure réponse que je puisse donner en ce moment, puisque j'ai la chance de ne pas avoir à rentrer dans les anciennes applications .Net.

Questions connexes