我有一个包含如下方法的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;
}
这将返回一个文件夹中的文件名列表。当我调试应用程序时,它正常工作。
我想做的是从一个winform应用程序中调用这个web服务方法。我添加了对web服务的.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创建的;这就是为什么我必须将Web服务DLL添加为WinForm应用程序的引用的原因。我没有完整的Visual Studio,否则我将能够拥有一个包含两个项目的单一解决方案。
我对Web服务很新。
PS-我喜欢这里的实时文本格式化:)