Pregunta

Estoy consumiendo un servicio WCF de terceros y su configuración está a continuación (una parte de la misma). Quería asignar serviceBehaviors para finalizar, pero no hay <service> Etiqueta aquí. En este caso, ¿cómo se asigna 'ServiceBehaviors'?

<client>
  <endpoint address="https://something/someservice.asmx" binding="customBinding" bindingConfiguration="ABCBinding" contract="Democlient.Soap" name="Soap" behaviorConfiguration="SoapEndpointB" />
</client>
<behaviors>
  <endpointBehaviors>
    <behavior name="SoapEndpointB">
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="SoapServiceB">
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <serviceMetadata httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
¿Fue útil?

Solución

Que asignas serviceBehaviors a los puntos finales del servidor WCF, no a los puntos finales del cliente. Tendría que solicitar el host del servicio WCF de terceros Agregar los comportamientos de servicio que busca si los necesita.

Otros consejos

Parece que la configuración que está mostrando es la configuración del lado del cliente. Eso solo indica cómo te vas a comunicar con el servicio. No le dice al servicio nada sobre su cliente.

Recuerde que el servicio no tiene conocimiento del cliente, y el único conocimiento que el cliente tiene del servicio es a través del intercambio de metadatos.

A menos que el servicio ofrezca algún método para hacerlo (no a través de ningún mecanismo .NET o WCF), su cliente no puede especificar cómo debe comportarse el servicio, ni debería hacerlo. Un servicio determinado puede estar manejando solicitudes de muchos clientes diferentes, cada uno con sus propios deseos. Simplemente no hay una buena manera de manejar ese tipo de situación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top