<serviceMetadata>
Hizmet meta verilerinin ve ilişkili bilgilerin yayınını belirtir.
<Yapılandırma>
<system.serviceModel>
<Davranış>
<serviceBehaviors>
<Davranış>
<serviceMetadata>
Syntax
<serviceMetadata externalMetadataLocation="String"
httpGetBinding="String"
httpGetBindingConfiguration="String"
httpGetEnabled="Boolean"
httpGetUrl="String"
httpsGetBinding="String"
httpsGetBindingConfiguration="String"
httpsGetEnabled="Boolean"
httpsGetUrl="String"
policyVersion="Policy12/Policy15" />
Öznitelikler ve Öğeler
Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.
Öznitelikler
Öznitelik | Açıklama |
---|---|
externalMetadataLocation | Otomatik olarak oluşturulan WSDL yerine WSDL ve MEX isteklerine yanıt olarak kullanıcıya döndürülen WSDL dosyasının konumunu içeren bir Uri. Bu öznitelik ayarlanmadığında varsayılan WSDL döndürülür. Varsayılan değer boş bir dizedir. |
httpGetBinding | HTTP GET aracılığıyla meta veri almak için kullanılacak bağlamanın türünü belirten bir dize. Bu ayar isteğe bağlıdır. Belirtilmezse, varsayılan bağlamalar kullanılır. Yalnızca destekleyen IReplyChannel iç bağlama öğelerine sahip bağlamalar desteklenir. Ayrıca, bağlama özelliğinin MessageVersion olması Nonegerekir. |
httpGetBindingConfiguration | Özniteliğinde belirtilen bağlamanın adını ayarlayan ve bu bağlamanın httpGetBinding ek yapılandırma bilgilerine başvuran bir dize. Aynı ad bölümünde tanımlanmalıdır <bindings> . |
httpGetEnabled | HTTP/Get isteği kullanılarak alma için hizmet meta verilerinin yayımlanıp yayımlanmayacağını belirten boole değeri. Varsayılan değer: false .httpGetUrl özniteliği belirtilmezse, meta verilerin yayımlandığı adres hizmet adresi ve bir "?wsdl" olur. Örneğin, hizmet adresi ise http://localhost:8080/CalculatorService HTTP/Get meta veri adresi olur http://localhost:8080/CalculatorService?wsdl .Bu özellik ise false veya hizmetin adresi HTTP veya HTTPS'yi temel almazsa, "?wsdl" yoksayılır. |
httpGetUrl | HTTP/Get isteği kullanılarak alınması için meta verilerin yayımlandığı adresi belirten bir Uri. Göreli bir Uri belirtilirse, hizmetin temel adresine göre olarak değerlendirilir. |
httpsGetBinding | HTTPS GET aracılığıyla meta veri almak için kullanılacak bağlamanın türünü belirten bir dize. Bu ayar isteğe bağlıdır. Belirtilmezse, varsayılan bağlamalar kullanılır. Yalnızca destekleyen IReplyChannel iç bağlama öğelerine sahip bağlamalar desteklenir. Ayrıca, bağlama özelliğinin MessageVersion olması Nonegerekir. |
httpsGetBindingConfiguration | Özniteliğinde belirtilen bağlamanın adını ayarlayan ve bu bağlamanın httpsGetBinding ek yapılandırma bilgilerine başvuran bir dize. Aynı ad bölümünde tanımlanmalıdır <bindings> . |
httpsGetEnabled | HTTPS/Get isteği kullanarak alma için hizmet meta verilerinin yayımlanıp yayımlanmayacağını belirten boole değeri. Varsayılan değer: false .httpsGetUrl özniteliği belirtilmezse, meta verilerin yayımlandığı adres hizmet adresi ve bir "?wsdl" olur. Örneğin, hizmet adresi ise https://localhost:8080/CalculatorService HTTP/Get meta veri adresi olur https://localhost:8080/CalculatorService?wsdl .Bu özellik ise false veya hizmetin adresi HTTP veya HTTPS'yi temel almazsa, "?wsdl" yoksayılır. |
httpsGetUrl | HTTPS/Get isteği kullanılarak alınmak üzere meta verilerin yayımlandığı adresi belirten bir Uri. |
policyVersion | Kullanılan WS-Policy belirtiminin sürümünü belirten bir dize. Bu öznitelik türündedir PolicyVersion. |
Alt Öğeler
Hiçbiri
Üst Öğeler
Öğe | Açıklama |
---|---|
<Davranış> | Bir davranış öğesi belirtir. |
Açıklamalar
Bu yapılandırma öğesi, bir hizmetin meta veri yayımlama özelliklerini denetlemenize olanak tanır. Hassas olabilecek hizmet meta verilerinin yanlışlıkla açıklanmasını önlemek için, Windows Communication Foundation (WCF) hizmetlerinin varsayılan yapılandırması meta veri yayımlamayı devre dışı bırakır. Bu davranış varsayılan olarak güvenlidir, ancak aynı zamanda hizmetin meta veri yayımlama davranışı yapılandırmada açıkça etkinleştirilmediği sürece hizmeti çağırmak için gereken istemci kodunu oluşturmak için meta veri içeri aktarma aracını (Svcutil.exe gibi) kullanamazsınız. Bu yapılandırma öğesini kullanarak hizmetiniz için bu yayımlama davranışını etkinleştirebilirsiniz.
Bu davranışı yapılandırmaya ilişkin ayrıntılı bir örnek için bkz. Meta Veri Yayımlama Davranışı.
İsteğe bağlı httpGetBinding
ve httpsGetBinding
öznitelikleri, HTTP GET (veya HTTPS GET) aracılığıyla meta veri almak için kullanılan bağlamaları yapılandırmanıza olanak tanır. Belirtilmezse, meta verileri uygun şekilde almak için varsayılan bağlamalar (HttpTransportBindingElement
HTTP ve HttpsTransportBindingElement
HTTPS söz konusu olduğunda) kullanılır. Bu öznitelikleri yerleşik WCF bağlamalarıyla kullanamayacağınıza dikkat edin. Yalnızca destekleyen IReplyChannel iç bağlama öğelerine sahip bağlamalar desteklenir. Ayrıca, bağlama özelliğinin MessageVersion olması Nonegerekir.
Bir hizmetin kötü amaçlı kullanıcılara maruz kalmasını azaltmak için, HTTP (HTTPS) üzerinden SSL mekanizmasını kullanarak aktarımın güvenliğini sağlamak mümkündür. Bunu yapmak için, önce uygun bir X.509 sertifikasını hizmeti barındıran bilgisayardaki belirli bir bağlantı noktasına bağlamanız gerekir. (Daha fazla bilgi için bkz. Sertifikalarla Çalışma.) İkinci olarak, bu öğeyi hizmet yapılandırmasına ekleyin ve özniteliğini httpsGetEnabled
olarak true
ayarlayın. Son olarak, özniteliğini httpsGetUrl
aşağıdaki örnekte gösterildiği gibi hizmet meta veri uç noktasının URL'sine ayarlayın.
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceMetadata httpsGetEnabled="true"
httpsGetUrl="https://myComputerName/myEndpoint" />
</behavior>
</serviceBehaviors>
</behaviors>
Örnek
Aşağıdaki örnek serviceMetadata> öğesini kullanarak <meta verileri kullanıma sunan bir hizmeti yapılandırır. Ayrıca, sözleşmeyi IMetadataExchange
bir WS-MetadataExchange (MEX) protokolünün uygulaması olarak kullanıma sunma amacıyla bir uç nokta yapılandırılır. ÖrnektemexHttpBinding
, güvenlik modu olarak ayarlanmış None
olan ile eşdeğer wsHttpBinding
olan bir kolaylık standart bağlaması olan kullanılır. Uç noktada göreli bir "mex" adresi kullanılır ve hizmet temel adresiyle çözümlendiğinde uç nokta adresi ile http://localhost/servicemodelsamples/service.svc/mex
sonuçlanır.
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- This endpoint is exposed at the base address provided by the host: http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- The mex endpoint is exposed at http://localhost/servicemodelsamples/service.svc/mex
To expose the IMetadataExchange contract, you must enable the serviceMetadata behavior as demonstrated below. -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<!-- The serviceMetadata behavior publishes metadata through the IMetadataExchange contract. When this behavior is
present, you can expose this contract through an endpoint as shown above. Setting httpGetEnabled to true publishes
the service's WSDL at the <baseaddress>?wsdl eg. http://localhost/servicemodelsamples/service.svc?wsdl -->
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>