IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Webservice C# .asmx


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2020
    Messages : 4
    Par défaut Webservice C# .asmx
    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

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Pourquoi de l'asmx ?
    Tu peux faire des web services rest https://docs.microsoft.com/fr-fr/asp...-first-web-api
    https://docs.microsoft.com/fr-fr/asp...=visual-studio

    sinon pour que ton appli soit dispo il faut que tu génère les fichiers à déployer, fait un clic droit sur ton projet web et fait publier, tu peux publier directement dans ton répertoire IIS

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2020
    Messages : 4
    Par défaut Webservice C# .asmx suite
    Hello.

    Merci pour cette réponse.

    J’ai appliqué ta suggestion et donc publié en choisissant l’option IIS
    et en sélectionnant le répertoire inetpub\wwwroot\public
    que j’avais préalablement crée, et VS m’a bien pondu une clique de fichier
    dans le répertoire public.

    On y trouve 2 fichiers Web.config et Webservice1.asmx et un répertoire « bin »
    qui contient des références à mon projet « CodingCafeWebApplication »
    en l’occurrence.

    CodingCafeWebApplication.dll
    CodingCafeWebApplication.pdb
    Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
    Newtonsoft.Json.dll
    System.Net.Http.Formatting.dll

    Et dans ce repertoire « bin » un sous-répertoire s’appelant « roslyn » contenant plein de .dll et des fichiers .exe (apparemment un compilateur C#)
    Ci-dessous la liste des executables.

    Csc.exe
    Csi.exe
    Vbc.exe
    VBCSCompiler.exe

    Que dois faire avec tout ça maintenant ?
    Est-ce qu’un de ces fichiers est susceptible d’être pris en charge
    directement par internet explorer par exemple.

    J’espérais pouvoir lancer quelque chose de la forme déjà
    cité dans mon mail précèdent du genre http://localhost:54597/Convert.asmx
    qui faisait ce que j’attendais de mon programme lorsque j’utilisais l’option de debogage
    de VisualStudio.

    Ou plutôt quelque chose du genre http://localhost/public/<quoi_en_fait>
    En fait j’ai toujours pensé qu’on ne pouvait donner à un navigateur que des fichier .html/.js ou .php
    dans un environnent WAMP.
    Comment suis-je supposé faire tourner ce webservice maintenant tel qu’il soit appelable
    comme c’était possible avec un webservice PHP ?

    Re-merci d’avance

    Franck

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Il faut que t'installe IIS sur ton windows s'il n'est pas déjà installé
    https://www.supinfo.com/articles/sin...iis-windows-10
    et tu auras une appli Gestionnaire de service IIS intégré a ton windows

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2020
    Messages : 4
    Par défaut Webservice C# .asmx le retour
    Bien sûr j’avais déjà activé IIS.
    selon la méthode décrite chez SUPINFO
    et je le fait écouter au port 8080
    parce le port 80 est occupé par WAMP
    à qui je fais assumer de faire tourner le client_soap.

    Mais lorsque j’appelle le lien
    http://localhost:8080/public/WebService1.asmx
    qui contient donc la publication IIS de mon projet il affiche ce qui suit c-a-d son contenu

    <%@ WebService Language="C#" CodeBehind="WebService1.asmx.cs" Class="CodingCafeWebApplication.WebService1" %>

    au lieu d’executer ma solution et d’afficher les méthodes de mon serveur C#
    comme c’est le cas avec l’option de débogage de VS avec lesquelles je parviens à communiquer
    avec mon client soap PHP lorsque je requête a l’URL ci-dessous
    http://localhost:60106/WebService1.asmx

    Si j'utilise mon client PHP avec comme adresse $wsdl = "http://localhost:8080/public/WebService1.asmx?WSDL";
    il renvoie l’erreur
    erreur :SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost:8080/public/WebService1.asmx?WSDL' : Extra content at the end of the document

    Qu’est ce qui m’echappe dans cette histoire ?
    Je suis en train de devenir chèvre.
    Images attachées Images attachées  

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Il semblerait qu'il te manque des modules sur IIS pour éxécuter ton appli
    Nom : iis.PNG
Affichages : 880
Taille : 6,2 Ko
    voila ma config et mon asmx est dispo maintenant

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2020
    Messages : 4
    Par défaut Webservice C# .asmx Eureka!!
    Hello,

    J’ai finis par faire fonctionner ce webservice C# serveur
    avec IIS écoutant au port 8080 et son client PHP sous WAMP ecoutant au port 80 .
    En fait je m’étais planté dans la configuration de l’interface de publication
    mais en suivant a la lettre le tuto
    https://docs.microsoft.com/fr-fr/asp...ploying-to-iis
    Ça a fini par fonctionner.

    L’image jointe montre les paramètres que j’ai fournis.
    Nom : publish_to_IIS.png
Affichages : 896
Taille : 69,3 Ko

    Je m’attendais à ce qu’il me mette du code dans localhost/deploy
    mais il l’a mis dans la racine c’est à dire dans c:\inetpub\wwwroot
    et non pas dans c:\inetpub\wwwroot\deploy
    Un problème mineure je suppose.

    Ça fonctionne dans l’état en appelant à partir de mon client
    l’URL : localhost :8080/Webservice1.asmx
    et j’ai fait un test en recopiant les fichiers nouvellement créés
    dans deploy et ça marche aussi à
    L’URL : localhost :8080/deploy/Webservice1.asmx
    En tous cas merci, de m’avoir répondu
    Franck

Discussions similaires

  1. SL4 appel WebService Asmx avec authentification basic
    Par Tab dans le forum Silverlight
    Réponses: 1
    Dernier message: 01/03/2012, 09h35
  2. Réponses: 3
    Dernier message: 24/08/2011, 15h51
  3. Réponses: 4
    Dernier message: 31/01/2011, 13h49
  4. WebService List.asmx Erreur 401
    Par wave95 dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 25/09/2009, 17h11
  5. [SP-2007] WebService List.asmx Erreur 401
    Par wave95 dans le forum SharePoint
    Réponses: 3
    Dernier message: 25/09/2009, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo