Question

Nous passons d'une application héritée écrite dans ColdFusion à une application ASP.Net Web Forms. Une des exigences est de passer par-dessus le service Web hérité. L'adresse peut changer, mais le format de l'entrée et les réponses doivent être identiques. Je suis relativement nouveau dans le domaine des services Web, mais je sais qu’il existe des formats de sortie SOAP et JSON pour un service Web .Net (peut-être d’autres). Mais ni l'un ni l'autre ne sont réalisables.

Je dois avoir un contrôle complet sur la réponse donnée. Si je le faisais avec une page .ASPX, je voudrais simplement écrire le repos hérité dans une chaîne, effacer la réponse, puis ajouter cette chaîne à la réponse et appeler Response.End.

Existe-t-il quelque chose de similaire pour un fichier .ASMX?

Existe-t-il un moyen plus intelligent de le faire tout en pouvant s'intégrer au reste de la base de code de l'application Web ASP.Net?

Était-ce utile?

La solution

Si vous avez juste besoin d'un contrôle complet de la réponse, ignorez le scénario dramatique du cycle de page ASPX et envisagez plutôt d'utiliser un fichier .ASHX. C'est assez brut et peut être ce dont vous avez besoin.

Autres conseils

Vous pouvez utiliser WCF pour implémenter un ancien vieux XML (POX) au lieu de SOAP.

La WebHttpBinding est la liaison à utiliser pour cela. Si votre "contrôle complet" nie la possibilité de reverse engineering du service existant dans un contrat WCF explicite, vous pouvez utiliser un Diffusez pour un contrôle complet sur la sortie .

Dépend du format dont vous avez besoin.
ASMX et WCF généreront des réponses SOAP authentiques.
Si j'ai bien compris, vous avez dit "SOAP n'est pas réalisable". Si vous avez besoin d'un format impair, vous pouvez certainement le générer comme vous l'avez décrit avec une page ASPX. Le modèle de programmation ne sera cependant pas aussi agréable.

Quelle version de Visual Studio utilisez-vous? Si vous avez Visual Studio 2008 (SP1), vous ne devez pas créer de service Web ASMX. Microsoft considère désormais que cette technologie est un "héritage" et ne prévoit pas d'y remédier.

Au lieu de cela, vous devez créer un service WCF. Vous pouvez contrôler complètement le format de sortie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top