2010-07-07 7 views
11

Estoy creando un servicio WCF que se llamará desde otro servicio.Cómo especificar SoapAction personalizado para WCF

En el SOAPAction WSDL está apareciendo la siguiente manera

<soap12:operation soapAction="http://tempuri.org/ISubscriptionEvents/MyMethod" style="document" /> 

quiero que sea

<soap12:operation soapAction="http://www.TextXYZ.com/FUNC/1/0/action/MyMethod" style="document" /> 

¿Cómo puedo especificar la acción de jabón de encargo?

Respuesta

8

Podría especificar en la definición contrato de servicios:

[ServiceContract(Namespace = "http://www.TextXYZ.com/FUNC/1/0/action")] 
public interface IMyServiceContract 
{ 
    [OperationContract] 
    void MyMethod(); 
} 
19

También puede especificar la propiedad Action en el contrato de operación:

[ServiceContract] 
public interface IMyServiceContract 
{ 
    [OperationContract(Action = "http://www.TextXYZ.com/FUNC/1/0/action/MyMethod")] 
    void MyMethod(); 
} 

También puede establecer la ReplyAction si es necesario .

La respuesta de Darin establecerá la acción según el espacio de nombre, el nombre del contrato y el nombre de la operación, que es mucho más fácil de usar, pero puede no funcionar si necesita establecer la acción exactamente como lo desea.

Cuestiones relacionadas