Hello tout le monde.
Je suis en train de m’initier à C# car je dois créer un Webservice
dont la partie serveur tourne sous windows/C# , et la partie cliente
sous Linux/PHP.
J’ai suivi pour ce faire un tuto disponible à l’URL
qui met en place un service de conversion de degrés Fahrenheit en degrés Celsius.
Ce tuto utilise Visualstudio 2013 , alors que je l’applique avec Visualstudio 2017
Il a donc fallu que je gratte un peu pour retrouver les fonctionnalités qui
ont changé de place entre ces 2 versions.
Mais Bref, j’ai finis par y arriver sans pratiquement avoir à taper de code.
vu que l’IDE réalise pratiquement 99% du taf.
En particulier j’ai n’ai absolument pas eu à m’occuper du fichier WSDL
qui se créer tout seul. J’ai également pu faire un appel à ce Web service
coté PHP avec le programme élémentaire suivant
pris en charge par WAMP.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $wsdl = "http://localhost:54597/Convert.asmx?WSDL"; $clientSOAP = new SoapClient($wsdl); $res = $clientSOAP->FahrenheitToCelsius(100); echo "FahrenheitToCelsiusResult ".$res->FahrenheitToCelsiusResult;
qui me revoie un objet contenant les données que je souhaite.
La déjà, je tique parce que des services Web j’en avais déjà écrit en
PHP et j’avais dans l’idée que via SOAP on échangeait du texte
en JSON par exemple pour des choses du type tableau.
Mais bref un objet en retour ça me va aussi puisque je peux en extraire
ce que je souhaite via un $mavaleur = $objet->mavariable.
Mon problème , c’est que le code C# ne s’exécute que via le débogueur
de Visualstudio lorsque je sélectionne le fichier .asmx et VS ouvre un navigateur
à un port déterminé par lui.
En l’occurrence ça me donne quelque chose du genre http://localhost:54597/Convert.asmx
Le code lui se trouve dans Users\moi\source\repo\wcfserviceproject c-a-d
pas du tout dans un sous-répertoire du document_root de IIS
Si je copie le fichier convert.asmx et convert.asmx.cs quelque part dans
C:\inetpub\wwwroot\tmp par exemple et que je sélectionne le .asmx
Le navigateur télécharge le code mais n’exécute rien.
En PHP il suffisait d’appeler la page PHP du serveur .
Comment dois-je m’y prendre pour appeler ce service en C# indépendamment
de VisualStudio et quoi recopier exactement dans un sous-répertoire
du document_root avec et a un port standard.
Parce qu’il y a une palanquée de fichiers et de répertoires
à l’endroit ou VS construit le projet.
Entre les .cs et les .dll les .asmx et j’en passe, ça ressemble à une usine à gaz
Dois-je recopier toute l’arborescence, ou quoi ou qu’est-ce ?
Merci d’éclairer ma lanterne
Franck
Partager