gpt4 book ai didi

c# - 如何调用 Web 服务方法?

转载 作者:IT王子 更新时间:2023-10-29 04:30:44 24 4
gpt4 key购买 nike

我有一个包含此方法的网络服务:

[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 方法。我添加了对 web 服务的 .dll 的引用,这就是我调用上述方法的方式:

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

上面的代码不起作用 - 当它进入方法时,网络应用程序的路径为空,并且 HostingEnvironment 类的许多属性也为空。尝试从另一个 winform 应用程序调用 Web 服务方法时,我的错误在哪里?

请注意,Web 服务是在 Visual Web Developer Express 中创建的,而 winform 是在 Visual C# express 中创建的;这就是为什么我必须在 winform 应用程序中添加 Web 服务 dll 作为引用。我没有完整的 Visual Studio,这将允许我使用一个解决方案来处理两个项目。

我是网络服务的新手。

PS - 我喜欢这里的动态文本格式:)

最佳答案

在 visual studio 中,使用“添加 Web 引用”功能,然后输入您的 Web 服务的 URL。

通过添加对 DLL 的引用,您不是将其作为 Web 服务引用,而只是作为程序集引用。

当您添加网络引用时,它会在您的项目中创建一个代理类,该代理类具有与您的网络服务相同或相似的方法/参数。该代理类通过 SOAP 与您的 Web 服务通信,但隐藏了所有通信协议(protocol)内容,因此您不必担心。

关于c# - 如何调用 Web 服务方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com