Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica a publicação de metadados de serviço e informações associadas.
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata>
Sintaxe
<serviceMetadata externalMetadataLocation="String"
httpGetBinding="String"
httpGetBindingConfiguration="String"
httpGetEnabled="Boolean"
httpGetUrl="String"
httpsGetBinding="String"
httpsGetBindingConfiguration="String"
httpsGetEnabled="Boolean"
httpsGetUrl="String"
policyVersion="Policy12/Policy15" />
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Attributes
| Attribute | Description |
|---|---|
| externalMetadataLocation | Um Uri que contém o local de um arquivo WSDL, que é retornado ao usuário em resposta às solicitações WSDL e MEX em vez do WSDL gerado automaticamente. Quando esse atributo não é definido, o WSDL padrão é retornado. O padrão é uma cadeia de caracteres vazia. |
| httpGetBinding | Uma cadeia de caracteres que especifica o tipo da associação que será usada para recuperação de metadados por meio de HTTP GET. Esta configuração é opcional. Se não for especificado, as associações padrão serão usadas. Somente serão suportadas associações com elementos de associação interna que dão suporte IReplyChannel . Além disso, a MessageVersion propriedade da associação deve ser None. |
| httpGetBindingConfiguration | Uma cadeia de caracteres que define o nome da associação especificada no httpGetBinding atributo, que faz referência às informações de configuração adicionais dessa associação. O mesmo nome deve ser definido na <bindings> seção. |
| httpGetEnabled | Um valor booliano que especifica se os metadados do serviço devem ser publicados para recuperação usando uma solicitação HTTP/Get. O padrão é false.Se o atributo httpGetUrl não for especificado, o endereço no qual os metadados são publicados será o endereço de serviço mais um "?wsdl". Por exemplo, se o endereço do serviço for http://localhost:8080/CalculatorService, o endereço de metadados HTTP/Get será http://localhost:8080/CalculatorService?wsdl.Se essa propriedade for false, ou o endereço do serviço não for baseado em HTTP ou HTTPS, "?wsdl" será ignorado. |
| httpGetUrl | Um Uri que especifica o endereço no qual os metadados são publicados para recuperação usando uma solicitação HTTP/Get. Se um Uri relativo for especificado, ele será tratado como relativo ao endereço base do serviço. |
| httpsGetBinding | Uma cadeia de caracteres que especifica o tipo da associação que será usada para recuperação de metadados por meio de HTTPS GET. Esta configuração é opcional. Se não for especificado, as associações padrão serão usadas. Somente serão suportadas associações com elementos de associação interna que dão suporte IReplyChannel . Além disso, a MessageVersion propriedade da associação deve ser None. |
| httpsGetBindingConfiguration | Uma cadeia de caracteres que define o nome da associação especificada no httpsGetBinding atributo, que faz referência às informações de configuração adicionais dessa associação. O mesmo nome deve ser definido na <bindings> seção. |
| httpsGetEnabled | Um valor booliano que especifica se os metadados de serviço devem ser publicados para recuperação usando uma solicitação HTTPS/Get. O padrão é false.Se o atributo httpsGetUrl não for especificado, o endereço no qual os metadados são publicados será o endereço de serviço mais um "?wsdl". Por exemplo, se o endereço do serviço for https://localhost:8080/CalculatorService, o endereço de metadados HTTP/Get será https://localhost:8080/CalculatorService?wsdl.Se essa propriedade for false, ou o endereço do serviço não for baseado em HTTP ou HTTPS, "?wsdl" será ignorado. |
| httpsGetUrl | Um Uri que especifica o endereço no qual os metadados são publicados para recuperação usando uma solicitação HTTPS/Get. |
| policyVersion | Uma cadeia de caracteres que especifica a versão do WS-Policy especificação que está sendo usada. Esse atributo é do tipo PolicyVersion. |
Elementos filho
None
Elementos pai
| Elemento | Description |
|---|---|
| <comportamento> | Especifica um elemento de comportamento. |
Observações
Esse elemento de configuração permite controlar os recursos de publicação de metadados de um serviço. Para evitar a divulgação não intencional de metadados de serviço potencialmente confidenciais, a configuração padrão dos serviços do WCF (Windows Communication Foundation) desabilita a publicação de metadados. Esse comportamento é seguro por padrão, mas também significa que você não pode usar uma ferramenta de importação de metadados (como Svcutil.exe) para gerar o código do cliente necessário para chamar o serviço, a menos que o comportamento de publicação de metadados do serviço esteja explicitamente habilitado na configuração. Usando esse elemento de configuração, você pode habilitar esse comportamento de publicação para seu serviço.
Para obter um exemplo detalhado de configuração desse comportamento, consulte o Comportamento de Publicação de Metadados.
Os atributos e httpGetBinding opcionais httpsGetBinding permitem que você configure as associações usadas para recuperação de metadados via HTTP GET (ou HTTPS GET). Se elas não forem especificadas, as associações padrão (HttpTransportBindingElementno caso de HTTP e HttpsTransportBindingElement, no caso de HTTPS) serão usadas para recuperação de metadados conforme apropriado. Observe que você não pode usar esses atributos com as associações internas do WCF. Somente serão suportadas associações com elementos de associação interna que dão suporte IReplyChannel . Além disso, a MessageVersion propriedade da associação deve ser None.
Para reduzir a exposição de um serviço a usuários mal-intencionados, é possível proteger a transferência usando o mecanismo SSL por HTTP (HTTPS). Para isso, primeiro você deve associar um certificado X.509 adequado a uma porta específica no computador que está hospedando o serviço. (Para obter mais informações, consulte Trabalhando com certificados.) Em segundo lugar, adicione esse elemento à configuração de serviço e defina o httpsGetEnabled atributo como true. Por fim, defina o atributo httpsGetUrl como a URL do ponto de extremidade de metadados de serviço, conforme mostrado no exemplo a seguir.
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceMetadata httpsGetEnabled="true"
httpsGetUrl="https://myComputerName/myEndpoint" />
</behavior>
</serviceBehaviors>
</behaviors>
Example
O exemplo a seguir configura um serviço para expor metadados usando o <elemento serviceMetadata> . Ele também configura um ponto de extremidade para expor o IMetadataExchange contrato como uma implementação de um protocolo MEX (WS-MetadataExchange). O exemplo usa a mexHttpBindingassociação padrão , que é uma associação padrão de conveniência equivalente à wsHttpBinding com o modo de segurança definido como None. Um endereço relativo de "mex" é usado no ponto de extremidade, que quando resolvido em relação ao endereço base de serviços resulta em um endereço de ponto de extremidade de http://localhost/servicemodelsamples/service.svc/mex.
<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>