2012-03-21 16 views
0

私は単純なXML Webサービスを作成しています。.NET 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サービスの使用をテストする別のプロジェクトを作成しました。私はプロジェクトへのWeb参照を追加し、 "localWS"を使ってWebサービスを参照できるように設定しました。

Dim srv As New localWS.MyWS 

をしかし見つけない「MyWS」タイプがありませんでした。その後、私の消費クラスのページロードイベントで、私は自分のWebサービスのオブジェクトをインスタンス化しようとしました。ただし、localWS.MyWSSoapClientクラスがあります。私はそれを使用するときに私のWebメソッドを呼び出すことができます。私の質問は、なぜMyWSクラスのまっすぐなバージョンを作成できないのですか?私が読んでいるチュートリアルでは、.NET XML Webサービスのクラスを使用している本の例では、消費しているWebサービスクラスのオブジェクトをインスタンス化できます。

さらなるテストとして、新しいWebフォームをWebサービスプロジェクトに追加しました。そこで、MyWSクラスをインスタンス化することができました。

私の消費するコードでMyWSオブジェクトを作成できない理由を教えてもらえますか? MyWSSoapClientは同等ですか?どんなアドバイスも非常に高く評価されます。ありがとう!

答えて

1

MyWSクラスは、クライアント/サーバーソリューションのサーバー部分です。それは、消費システム(クライアント)によってアクセス可能であってはなりません。そうだった場合、MyWSクラスの機能をWebサービスとして公開する理由はありませんでした。

MyWSSoapClientクラスは、Web参照の追加時にWebサービスのメタデータ(WSDL)から生成されます。クライアントがWebサービスと通信するために使用できるクラスです。

関連する問題