Comment appeler une Méthode de Service Web?

J'ai un service web qui contient cette méthode:

[WebMethod]
public static List<string> GetFileListOnWebServer()
{
   DirectoryInfo dInfo = new DirectoryInfo(HostingEnvironment.MapPath("~/UploadedFiles/"));
   FileInfo[] fInfo = dInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly);

   List<string> listFilenames = new List<string>(fInfo.Length);

   for(int i = 0; i < fInfo.Length; i++)
   {
        listFilenames.Add(fInfo[i].Name);
   }

   return listFilenames;
}

Cela renvoie une liste de noms de fichiers dans un dossier. Quand je debug de l'application, il fonctionne très bien.

Ce que je veux faire, c'est d'appeler ce webservice méthode à partir d'une application winform. J'ai ajouté une référence à l' .dll du webservice, et c'est comme ça que j'appelle la méthode ci-dessus:

private void Form1_Load(object sender, EventArgs e)
{
    List<string> files = TestUploaderWebService.Service1.GetFileListOnWebServer();
}

Le code ci-dessus ne fonctionne pas - quand il entre dans la méthode, le chemin d'accès de l'application web est null, et beaucoup de propriétés de HostingEnvironment classe sont également nulles. Où est mon erreur, en essayant d'appeler une méthode de service web à partir d'une autre application winform?

Veuillez noter que le service web est effectué dans Visual Web Developer Express, et la winform dans Visual C# express; c'est pourquoi j'ai dû ajouter le service web dll en tant que référence dans l'application winform. Je n'ai pas de Visual Studio plein, ce qui m'aurait permis une solution unique avec deux projets.

Je suis nouveau à des services web.

PS - j'aime la mise en forme de texte à la volée ici 🙂

InformationsquelleAutor Amc_rtty | 2009-08-03