59 votes

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

J'ai un fichier WSDL et je suis en train de créer un service web qui est conforme à la WSDL.

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

Je suis allé aussi loin que l'utilisation de:

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

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

Je m'attendais à y avoir une sorte de tampon où je l'ai mis dans le code pour effectuer les appels de service. J'ai seulement créé de services web simples avant et aucun d'entre eux ont utilisé les interfaces publiques, donc je suis familier avec ce qui se passe ici.

À ce point, je ne suis pas sûr de savoir comment j'utilise le générés .vb fichier et de le faire fonctionner avec un .asmx fichier et ce codage supplémentaire est nécessaire pour terminer l'interface.

35voto

Robert Vuković Points 2670

Si vous avez déjà créé des interfaces vous avez besoin pour mettre en œuvre ces interfaces.
Il suffit de créer de nouveaux services web et ajouter de l'interface que vous avez généré de sorte qu'il hérite de l'interface. Visual Studio peut automatiquement générer les stubs pour chaque méthode de l'interface. Marquer avec attribut WebMethod et de mettre un peu de code qui va renvoyer des données de test/résultats.

Si vous avez inteface (avec quelques attributs supplémentaires qui ont été générées automatiquement:


public interface IRealWebService
{
    string GetName();

}

Vous devriez faire de nouveaux services:


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

    #region IRealWebService Members

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

4voto

John Saunders Points 118808

Tout ce que vous devez faire est de créer une classe qui hérite de l'interface WSDL.EXE a générés, puis de mettre en œuvre les méthodes de l'interface.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X