In realtà, contrariamente a quello che pensavo, in realtà è abbastanza semplice scoprire quale endpoint è stato chiamato il servizio. Nel vostro metodo di servizio, aggiungere queste righe di codice:
OperationContext oc = OperationContext.Current;
if(oc != null)
{
string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();
}
Ma come ho detto: vorrei utilizzare questo molto saggiamente e "difensiva" - non iniziare a cambiare il comportamento di servizio sulla base di ciò endpoint vostro metodo è stato chiamato - Sarebbe un pessimo design!
Ho provato questo con diversi endpoint SOAP - non sicuro al 100% come verrà gestito REST (ma molto probabilmente lo stesso o molto similmente) - provalo!
Ma per la registrazione, questo dovrebbe funzionare bene!
fonte
2011-02-08 15:34:00
un problema Sto incontrando è che il sapone e il riposo gestiscono gli errori in modo diverso. Per segnalare un errore a riposo è necessario inviare una richiesta non valida come risposta e ciò provoca un'eccezione non gestita in soap. – Marcom