【发布时间】:2010-11-16 12:23:55
【问题描述】:
我有一个包含此方法的网络服务:
[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;
}
这将返回文件夹中的文件名列表。当我调试应用程序时,它工作正常。
我想做的是从一个winform应用程序调用这个webservice方法。我添加了对 webservice 的 .dll 的引用,这就是我调用上述方法的方式:
private void Form1_Load(object sender, EventArgs e)
{
List<string> files = TestUploaderWebService.Service1.GetFileListOnWebServer();
}
上面的代码不起作用 - 当它进入方法时,Web应用程序的路径为空,并且HostingEnvironment类的许多属性也为空。尝试从另一个 winform 应用调用 Web 服务方法时,我的错误在哪里?
请注意,Web 服务是用 Visual Web Developer Express 制作的,而 winform 是用 Visual C# express 制作的;这就是为什么我必须在 winform 应用程序中添加 Web 服务 dll 作为参考。我没有完整的 Visual Studio,这将允许我使用两个项目的单一解决方案。
我是网络服务的新手。
PS - 我喜欢这里的动态文本格式:)
【问题讨论】:
标签: c# winforms web-services