2010-12-13 96 views
0

我们有一个包含Web方法的Web应用程序。我想从控制台应用程序调用其中一种方法。我是新手,但是我编写了一个控制台应用程序,添加了一个服务引用并尝试对其进行代码调用。从控制台应用程序消费Web服务

如果我的web方法被称为“传输”,我期望在我指定的命名空间中看到Transmit,但是我看到“TransmitRequest”,“TranmsitRequestBody”,“TransmitResponse”和“TransmitResponseBody”。

这些东西是什么? 我做错了什么? 如何从控制台应用程序调用Web应用程序中的Web方法?

谢谢你对这个新手的所有帮助。我正在使用VB.net 2008.

+0

您需要在您的标记指定的语言/平台。我假设你使用.NET,但知道这肯定会影响你得到的答案。 – Jason 2010-12-13 21:54:09

+0

是的,对不起。我在VB.net中编写了控制台应用程序和用于Web应用程序的VB asp.net。你能帮我吗? – DeveloperM 2010-12-14 14:07:02

回答

1

如果您在solutionExplorer中展开ServiceReference文件夹,请双击您的服务并打开对象浏览器。现在你会看到这个班(没有我面前的班)。在你的代码然后将实例与[ServiceReferenceName]一个新的变量。[类名]即

Dim svc as new ServiceReference1.MyWebService(); 
svc.Transmit(); 
+0

谢谢你的回应。问题是我没有看到服务名称下的“传输”方法。我看到“Body”和一些基本功能,如“ToString”,“GetType”等。为什么我没有看到传输方法? – DeveloperM 2010-12-14 15:50:58

+0

这意味着服务在asmx端配置不正确(方法需要用[WebMethod]属性标记,或者代理类没有正确生成。在解决方案资源管理器中选择ServiceReference并在解决方案资源管理器的顶部点击Show all files。你应该有一个扩展名为WSDL的文件?在那里寻找Transmit方法,并且让我知道你是否可以看到它 – 2010-12-14 16:18:25

+0

这些方法标记为当我通过显示所有文件展开解决方案资源管理器时,看到一个扩展名为wsdl的文件,但是仍然没有传输方法 – DeveloperM 2010-12-14 16:26:26