Attualmente sto sviluppando un servizio RESTful WCF. Nell'ambito della convalida dei dati POST, sto lanciando eccezioni se la richiesta XML non è conforme alle nostre regole aziendali.WCF + REST: dove sono i dati della richiesta?
L'obiettivo è inviare un'e-mail allo staff appropriato in caso di richiesta non valida. Ma, insieme alle intestazioni delle richieste in entrata, al metodo e all'URI, vorrei anche inviare l'XML che è stato pubblicato.
Non sono stato in grado di trovare un modo per accedere a questi dati. WCF sta effettivamente distruggendo il corpo/i dati della richiesta prima che io abbia la possibilità di accedervi o mi manchi qualcosa?
Il tuo aiuto è apprezzato perché sono confuso sul motivo per cui non riesco ad accedere ai dati della richiesta.
Holy cow!È persino peggio della mia soluzione :-) –
Concordato: il vantaggio è che non è necessario introdurre una seconda copia dal livello di trasporto con un'ispettore messaggi su ogni richiesta. In questo modo possiamo ottenere il buffer originale direttamente dal codice del servizio e solo quando c'è un problema. Quindi la mia cautela originale. :) Vorrei che lo esponessimo appena fuori da WebOperationContext, ma, dopo averlo smontato, capisco perché non lo fanno (specialmente quando si considerano richieste in streaming di dimensioni arbitrarie). – nitzmahone
Grazie per la risposta. Ora capisco perché stai adottando questo approccio. È interessante notare che, per capire perché WCF funziona nel modo giusto, è necessario scavare nell'implementazione. In qualche modo sconfigge lo scopo di cercare di astrarre la complessità! –