2010-07-07 2 views
11

Sto creando un servizio WCF che verrà chiamato da un altro servizio.Come specificare SoapAction personalizzato per WCF

Nel SOAPAction WSDL sta comparendo come segue

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

io voglio che sia

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

Come posso specificare l'azione di sapone personalizzato?

risposta

8

Si potrebbe specificarlo nella definizione contratto di servizio:

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

Si può anche specificare la proprietà Action sul contratto operazione:

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

È anche possibile impostare il ReplyAction se è necessario .

La risposta di Darin imposta l'azione in base allo spazio dei nomi, al nome del contratto e al nome dell'operazione, che è molto più semplice da utilizzare, ma potrebbe non funzionare se è necessario impostare l'azione esattamente come desiderato.