Tengo un servicio web que contiene este método:¿Cómo llamar a un método de servicio 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;
}
Esto devuelve una lista de nombres de archivos en una carpeta. Cuando depuro la aplicación, funciona bien.
Lo que quiero hacer es llamar a este método de servicio web desde una aplicación winform. He añadido una referencia a la DLL del servicio web, y así es como yo llamo el método anterior:
private void Form1_Load(object sender, EventArgs e)
{
List<string> files = TestUploaderWebService.Service1.GetFileListOnWebServer();
}
El código anterior no funciona - cuando entra en el método, el camino de la aplicación web es nulo y muchas propiedades de la clase HostingEnvironment también son nulas. ¿Dónde está mi error al tratar de llamar a un método de servicio web desde otra aplicación winform?
Tenga en cuenta que el servicio web se realiza en Visual Web Developer Express, y el winform en Visual C# express; Es por eso que tuve que agregar el dll del servicio web como referencia en la aplicación winform. No tengo Visual Studio completo, lo que me hubiera permitido una solución única para ambos proyectos.
Soy nuevo en servicios web.
PS - Me encanta el formato del texto en la marcha aquí :)
Excelente - muchas gracias! Ahora eliminé el dll ref y agregué una referencia de servicio a la URL. Sin embargo, he notado que no me da acceso directo a mi método, en cambio tengo acceso a clases llamadas: GetFileListOnWebServerRequest, GetFileListOnWebServerRequestBody, GetFileListOnWebServerResponse, GetFileListOnWebServerResponseBody.¿Hay algún recurso web que pueda leer sobre estas clases autogeneradas? No sé cómo usar estos. –
Genera muchas partes, pero solo busca el método GetFileListOnWebServer. –
En realidad, solo mira el ejemplo de John. –