Aracılığıyla paylaş


<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/CalculatorServiceHTTP/Get meta veri adresi olur http://localhost:8080/CalculatorService?wsdl.

Bu özellik ise falseveya 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/CalculatorServiceHTTP/Get meta veri adresi olur https://localhost:8080/CalculatorService?wsdl.

Bu özellik ise falseveya 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 (HttpTransportBindingElementHTTP ve HttpsTransportBindingElementHTTPS 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 trueayarlayı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ış Noneolan 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/mexsonuç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>

Ayrıca bkz.