web-dev-qa-db-fra.com

Créer un service Web ASMX à partir d'un fichier WSDL

J'ai un fichier WSDL et j'essaie de créer un service Web conforme au WSDL.

J'ai créé des clients à l'aide de fichiers WSDL qui consomment un service existant, mais je n'ai jamais créé de service Web qui devait suivre un WSDL spécifique.

Je suis allé jusqu'à utiliser:

wsdl.exe mywsdl.wsdl /l:VB /serverInterface

Maintenant, j'ai un fichier .vb généré à partir de ce WSDL. Cependant, je ne suis pas sûr de ce que je suis censé faire avec ce fichier VB. Il semble qu'il y ait une interface publique là-dedans mais pas de classe qui implémente l'interface. Il a également un tas de classes partielles pour les types dans le WSDL.

Je m'attendais à ce qu'il y ait une sorte de talon où j'ai mis le code pour terminer les appels de service. Je n'ai créé que des services Web simples auparavant et aucun d'entre eux n'utilisait d'interfaces publiques, donc je ne suis pas familier avec ce qui se passe ici.

À ce stade, je ne sais pas comment utiliser le fichier .vb généré et le faire fonctionner avec un fichier .asmx et quel codage supplémentaire est nécessaire pour terminer l'interface.

57
dtc

Si vous avez déjà créé des interfaces, vous devez implémenter ces interfaces.
Créez simplement un nouveau service Web et ajoutez l'interface que vous avez générée afin qu'elle hérite de cette interface. Visual Studio peut générer automatiquement des stubs pour chaque méthode de l'interface. Marquez-les avec l'attribut WebMethod et mettez du code qui renverra des données/résultats de test.

Si vous avez cette interface (avec quelques autres attributs qui ont été générés automatiquement):


public interface IRealWebService
{
    string GetName();

}

Vous devez créer un nouveau service:


public class WebTestService : System.Web.Services.WebService, IRealWebService
{

    #region IRealWebService Members

    [WebMethod]
    public string GetName()
    {
        return "It Works !!!!";
    }
    #endregion
}
34
Robert Vuković

Il vous suffit de créer une classe qui hérite de l'interface générée par WSDL.EXE, puis d'implémenter les méthodes à partir de l'interface.

4
John Saunders