2009-02-14 18 views
56

gelen bir ASMX web hizmeti oluşturun.Ben WSDL dosyası var ve WSDL'nin uyan bir web hizmeti oluşturmak çalışıyorum WSDL dosyalarından

Varolan hizmeti tüketen WSDL dosyaları kullanan istemcilerin oluşturduk ama belirli bir WSDL izlemek için gereken bir web hizmeti yarattı hiç.

ben kullanmak kadar ileri gittin:

wsdl.exe mywsdl.wsdl /l:VB /serverInterface

Şimdi o WSDL oluşturulan bir .vb dosyası var. Ancak bu VB dosyasıyla ne yapmam gerektiğinden emin değilim. Orada bir ortak arabirim var ama arabirimi uygulayan hiçbir sınıf var gibi görünüyor. Ayrıca, WSDL'deki türler için bir grup kısmi sınıf vardır.

ben hizmeti çağrıları tamamlamak için kod koymak saplama çeşit olacaksa bekliyordum. Daha önce basit web servisleri oluşturdum ve hiçbiri ortak arabirimleri kullanmıyordu, bu yüzden burada neler olup bittiğine aşina değilim. Bu noktada

ben oluşturulan .vb dosyası kullanmak ve bir .asmx dosyası ve hangi ek kodlama arayüzünü tamamlamak için gereken çalışmak yapmak nasıl emin değilim.

+0

@webdtc: Bu soru için teşekkür, bu TAM benim soruydu bugün ve mükemmel şekilde cevap verdi. tekrar teşekkürler! –

+1

sayesinde 1. wsdl.exe sözdizimi tazeleme ve sonraki cevap bana çok zaman kurtardı. –

cevap

33

Zaten arayüzler oluşturduysanız, bu arayüzleri uygulamanız gerekir.
Sadece yeni bir web servisi oluşturun ve oluşturduğunuz arabirimi bu arabirimi miras alsın diye ekleyin. Visual Studio, arayüzdeki her yöntem için otomatik olarak taslak oluşturabilir. WebMethod özniteliği ile işaretleyin ve bazı test verilerini/sonuçlarını döndürecek bir kod koyun.

otomatik oluşturulan bazı fazlası özellikler (inteface var ise:


public interface IRealWebService 
{ 
    string GetName(); 

} 

Yeni hizmet yapmalıdır:


public class WebTestService : System.Web.Services.WebService, IRealWebService 
{ 

    #region IRealWebService Members 

    [WebMethod] 
    public string GetName() 
    { 
     return "It Works !!!!"; 
    } 
    #endregion 
} 
+0

teşekkür ederiz. Ben bu olduğunu düşünüyorum. Şimdi neler olduğunu anlamak! Belki de ilk önce C yapmalıydım. o VB.net'de ve henüz VB.net'e aşina değilim. Ama ben senin örneğini mükemmel bir şekilde anlıyorum ve bunu C# 'da yapabilirim. – dtc

+0

Bu bana yolun bir parçası var. .Net 4.0'da, ayrıca dersime [SoapDocumentService (RoutingStyle = SoapServiceRoutingStyle.RequestElement)] ekledim ve çalıştı. Bu site biraz daha açıklar: http://gsmblog.com/post/Solving-problems-with-the-MS-header-SOAPAction.aspx. Yardım edip edemediğini bilmiyorum, ancak WebService, WebServiceBinding, System.ComponentModel.ToolboxItem ve System.Web.Script.Services.ScriptService gibi webservice'deki tüm diğer özellikleri kaldırdım. –

+0

Herhangi biri, parametre olarak nesne isteğine ve dönüş türü olarak yanıt nesnesine sahip bir yöntem içeren bir wsdl ile karşılaşır mı? –

4

yapmanız gereken tek şey arayüzden yöntemlerini uygulamak ardından Wsdl.exe üretti arayüzden devralan bir sınıf oluşturmak ve olduğunu.