.NET XML Web服务,消耗无法访问Web服务类的类

时间:2012-03-21 11:47:20

标签: .net vb.net visual-studio-2010 web-services

我正在创建一个简单的XML Web服务,并遇到了一些我无法解释的问题。

我的Web服务类具有以下结构:

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Xml


<System.Web.Services.WebService(Namespace:="http://www.mynamespace.com/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class MyWS
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function HelloName(Byval name as String)
         return String.Concat("Hello",name)
    End Function

End Class

使用内置的VS Web服务测试工具调用我的方法可以正常工作。

我在另一个解决方案中创建了另一个项目来测试使用Web服务。我为我的项目添加了一个Web引用并设置它,以便我可以使用“localWS”引用我的Web服务。然后在我的消费类的页面加载事件中,我试图实例化我的Web服务的对象:

Dim srv As New localWS.MyWS

但是没有找到“MyWS”类型。但是有一个localWS.MyWSSoapClient类。当我使用它时,我可以调用我的网络方法。我的问题是,为什么我不能创建MyWS类的直接版本?在我阅读的教程中,在我的书中,使用.NET XML Web服务类的示例可以实例化他们正在使用的Web服务类的对象。

作为进一步的测试,我在我的Web服务项目中添加了一个新的Web表单,从那里我可以实例化一个MyWS类。

有人能告诉我为什么我不能在我的消费代码中创建一个MyWS对象吗? MyWSSoapClient是否相同?任何建议将非常感谢。谢谢!

1 个答案:

答案 0 :(得分:1)

MyWS类是客户端 - 服务器解决方案的服务器部分。它不应该由消费系统(客户端)访问。如果是,则没有理由将MyWS类的功能公开为Web服务。

当您添加Web引用时,将根据Web服务的元数据(WSDL)生成MyWSSoapClient类。这是一个客户可以用来与您的网络服务进行通信的课程。