Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET中使用web服务_.net_Vb.net_Web Services - Fatal编程技术网

在VB.NET中使用web服务

在VB.NET中使用web服务,.net,vb.net,web-services,.net,Vb.net,Web Services,我第一次在.NET中测试web服务。我快到了,但我似乎无法使用web服务。我知道这篇文章和这个网站上的其他5-6篇文章很相似,但我已经看过了,仍然不能得到正确的语法 到目前为止,我已经: -创建创建目录的简单web服务 -在开发环境中工作,但在live server上工作时遇到了一些问题 -我可以调出“自动”生成的.NET we服务页面。 -添加了web服务引用-现在可以在我的解决方案资源管理器和intellisense中查看该引用 更新: 以下是指向Web服务本身的链接: web服务接受一个

我第一次在.NET中测试web服务。我快到了,但我似乎无法使用web服务。我知道这篇文章和这个网站上的其他5-6篇文章很相似,但我已经看过了,仍然不能得到正确的语法

到目前为止,我已经: -创建创建目录的简单web服务 -在开发环境中工作,但在live server上工作时遇到了一些问题 -我可以调出“自动”生成的.NET we服务页面。 -添加了web服务引用-现在可以在我的解决方案资源管理器和intellisense中查看该引用

更新: 以下是指向Web服务本身的链接:

web服务接受一个字符串(目录名,例如/test/directory)。但是,当我输入Web引用的名称(ServiceReference1)时,我没有得到我期望的方法

以下是我对ServiceReference1对象的选项

ServiceReference1.makeDirRequest
ServiceReference1.makeDirRequestBody
ServiceReference1.makeDirResponse
ServiceReference1.makeDirResponseBody
ServiceReference1.Service1Soap
ServiceReference1.Service1SoapChannel
ServiceReference1.Service1SoapClient

通过,您没有发布足够的代码来查看您所做的操作

我强烈建议您使用WCF

鉴于您的样本名称已被证实,您需要

Dim service As New ServiceReference1.Service1SoapClient
service.makeDir("some val")

在web上下载众多示例中的一个(大量),然后首先让示例工作。如果您无法实现这一点,那么Windows安装中存在其他问题

我不确定
makeDirRequest
是否是服务-听起来像是一条消息。在该名称空间中寻找另一种类型(如果幸运的话,可能以“service”或“client”结尾,但最终根据使用“AddWebReference”等时键入的内容命名),它继承自
WebService

这应该将您的服务方法作为公共方法


看过该服务后,我认为问题在于您添加的是服务引用(WCF/3.0),而不是web引用(2.0)。如果您的目标是3.0/3.5,则可以使用“高级…”=>“添加web引用”选项添加web引用 (在“添加服务引用”对话框中)。然后您可以使用(其中
WebReference
是添加引用时命名的名称):

如果改用WCF服务引用,则该名称往往包括“Soap”开销(其中
ServiceReference1
是添加引用时命名的内容):


无论哪种方式,都应该是一样的。

在.NET应用程序中使用Web服务

创建和使用Web服务-操作系统、软件和网络

从Win Forms应用程序使用Web服务-CodeProject


看看它是否对你有帮助。这个例子是C#中的,但是你应该发现它很容易翻译。

如果你没有什么好说的,John Saunders,什么都别说:)如果你的服务中公开了WebMethods,你可以调用它们。您的服务中是否有任何具有[WebMethod()]属性的方法?是的,makeDir是使用该属性的公开web方法。这是“Invoke”的语法,我似乎无法理解。invoke语句是什么样子的?所以从你说的应该是createDir.makeDir(params…)@cinqoTimo:我甚至不记得我说了什么。它一定是这样的,你看过关于使用web服务的基本文档了吗?你知道除非你别无选择,否则你应该使用WCF吗?我有一篇博客文章展示了如何使用web服务,但是它在johnwsaundersiii.spaces.live.com上,我无法从工作中访问它,所以你必须查找它。谢谢Marc-我添加了更多关于我看到的内容的信息。它与人们发布的所有文章有所不同,不知道为什么…尤其是>>部分您可以使用“高级…”=>“添加web引用”选项@John Saunders添加web引用-谢谢John,我确实找到了您的文章,这对初学者很好。我需要更多地了解WCF。我知道它将成为微软首选的web服务平台,但我不了解它的机制。这是一个非常简单的服务,所以我不打算将其移植到WCF,因为它已经在工作了,但我将继续使用WCF。谢谢。@cinqoTimo:我很高兴它起了作用。顺便说一句,它不会成为微软首选的平台。三年多来,它一直是首选平台。ASMXWeb服务现在被认为是“遗留技术”,不应用于新的开发。
Using client As WebReference.Service1 = New WebReference.Service1
    Dim foo As String = "foo"
    client.makeDir(foo)
End Using
Using client As ServiceReference1.Service1SoapClient = New ServiceReference1.Service1SoapClient
    Dim foo As String = "foo"
    client.makeDir(foo)
End Using