2012-03-21 3 views
0

간단한 XML 웹 서비스를 만들고 있는데 설명 할 수없는 부분이 있습니다.웹 서비스 클래스에 액세스 할 수없는 .NET XML 웹 서비스

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 웹 서비스 테스트 장치에 내장 :

내 웹 서비스 클래스는 다음과 같은 구조를 가지고있다.

또 다른 솔루션으로 웹 서비스 소비를 테스트하기 위해 다른 프로젝트를 만들었습니다. 내 프로젝트에 웹 참조를 추가하고 "localWS"를 사용하여 웹 서비스를 참조 할 수 있도록 설정했습니다.

Dim srv As New localWS.MyWS 

을하지만, 찾을 수 없습니다 "MyWS"유형이 없었다 : 그럼 내 소비 클래스의 페이지로드 이벤트에서 내 웹 서비스의 개체를 인스턴스화하려고 노력했다. 그러나 localWS.MyWSSoapClient 클래스가 있습니다. 그것을 사용할 때 웹 메서드를 호출 할 수 있습니다. 제 질문은 왜 MyWS 클래스의 똑 바른 버전을 만들 수 없습니까? 읽은 자습서 및 .NET XML 웹 서비스 클래스를 사용하는 예제에서는 소비하는 웹 서비스 클래스의 개체를 인스턴스화 할 수 있습니다.

추가 테스트로서 웹 서비스 프로젝트에 새로운 웹 폼을 추가하고 거기에서 MyWS 클래스를 인스턴스화 할 수있었습니다.

내 소비 코드에서 MyWS 객체를 만들 수없는 이유는 누구에게도 들릴 수 있습니까? MyWSSoapClient는 동등한가요? 어떤 조언을 주시면 감사하겠습니다. 감사!

답변

1

MyWS 클래스는 클라이언트 - 서버 솔루션의 서버 부분입니다. 소비 시스템 (클라이언트)이 액세스 할 수 없어야합니다. 그렇다면 MyWS 클래스의 기능을 웹 서비스로 노출 할 이유가 없었을 것입니다.

MyWSSoapClient 클래스는 웹 참조를 추가 할 때 웹 서비스의 WSDL (Metadata)에서 생성됩니다. 클라이언트가 웹 서비스와 통신하는 데 사용할 수있는 클래스입니다.