J'ai un service Web qui contient cette méthode:Comment appeler une méthode de service Web?
[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;
}
Ceci retourne une liste de noms de fichiers dans un dossier. Quand je débogue l'application, cela fonctionne très bien.
Ce que je veux faire, est d'appeler cette méthode webservice à partir d'une application winform. J'ai ajouté une référence au .dll du webservice, et voici comment 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 de l'application Web est nulle , et beaucoup de propriétés de la classe HostingEnvironment sont également null. 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 créé dans Visual Web Developer Express et la forme winform dans Visual C# express; C'est pourquoi j'ai dû ajouter le service web dll comme référence dans l'application winform. Je n'ai pas Visual Studio complet, ce qui m'aurait permis une solution unique avec les deux projets.
Je suis nouveau sur les services Web.
PS - j'aime la mise en forme du texte à la volée ici :)
Superbe - merci beaucoup! J'ai maintenant enlevé le ref de dll, et ai ajouté une référence de service à l'URL. J'ai cependant remarqué qu'il ne me donne pas un accès direct à ma méthode, à la place j'ai accès à des classes appelées: GetFileListOnWebServerRequest, GetFileListOnWebServerRequestBody, GetFileListOnWebServerResponse, GetFileListOnWebServerResponseBody.Y at-il une ressource web que je peux lire concernant ces classes autogénérées? Je ne sais pas comment les utiliser. –
Il génère beaucoup de parties, mais il suffit de rechercher la méthode GetFileListOnWebServer elle-même. –
En fait, regardez l'exemple de John. –