2011-02-01 21 views

cevap

2

WSDL genellikle hizmetin HTTP (S) URL ?wsdl eklenerek alınır. Ancak bu WSDL alımına ServiceMetadataBehavior numaralı telefondan izin vermelisiniz. Eğer WSDL köprü ile yardım sayfasını almalıdır

Ayrıca
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <serviceMetadata httpGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

tarayıcıya HTTP (S) hizmetinizin tabanlı URL yazarak: WCF hizmeti uygulama projesi şablonu kullanıyorsanız WCF 4 tüm HTTP tabanlı hizmetler için varsayılan olarak bu izin verir .

WCF 3.x'te manuel olarak izin vermeli ve servis tanımında davranış yapılandırmasını kullanmalısınız.

<behaviors> 
    <serviceBehaviors> 
    <behavior name="myConfig"> 
     <!-- requires HTTPS to be configured for your service --> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="..." behaviorConfiguration="myConfig"> 
    ... 
    </service> 
</services> 

WSDL'nin alınması bu yolla yalnızca HTTP (S) GET üzerinden mümkündür. Ayrıca hizmet meta verilerini almak için WS-MetadataExchange protokolünü de Metadata endpoint'dan kullanabilirsiniz - ayrıca farklı aktarım protokollerini de destekler. WCF'de WSDL sadece SOAP servisleri içindir.

1

WCF'deki WSDL URI, istemci ile iletişim kurmak için kullanılabilecek Proxy sınıfı oluşturmak için kullanılır. URI alır

WSDL/meta diyoruz. Müşterinin proxy sınıfını oluşturması için hizmet sözleşmeleri, işlem sözleşmeleri, WCF'de kullanılan yöntem ve WCF yöntemindeki parametreler hakkında bilgi sahibi olmaları gerekir. Bu bilgi istemcisi, vekil sınıfını üretemez. Uygulamada WCF hizmetini barındıran bu nedenle, metadata, tüm bu bilgileri uygulama yapılandırma dosyasında oluşturmaktan sorumludur.