2012-03-21 195 views
0

我正在創建一個簡單的XML Web服務,並遇到了一些我無法解釋的問題。.NET XML Web服務,使用類無法訪問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類。當我使用它時,我可以調用我的web方法。我的問題是,爲什麼我不能創建MyWS類的直接版本?在我讀過的教程以及本書的示例中,.NET XML Web服務的示例消費類可以實例化它們正在使用的Web服務類的對象。

作爲進一步的測試,我添加了一個新的web表單到我的web服務項目,並從那裏我能夠實例化一個MyWS類。

任何人都可以告訴我爲什麼我不能在我的消費代碼中創建一個MyWS對象? MyWSSoapClient是否等同?任何建議將非常感激。謝謝!

回答

1

MyWS類是客戶端服務器解決方案的服務器部分。它不應該由消費系統(客戶端)訪問。如果是這樣,那麼就沒有理由將MyWS類的功能作爲Web服務公開。

MyWSSoapClient類是在添加Web引用時從Web服務的元數據(WSDL)生成的。這是一個你的客戶可以用來與你的web服務進行通信的類。