que tengo un método web, que se llama desde el método ajax de jQuery, así:Cómo iniciar sesión JSON solicitudes de servicios web
$.ajax({
type: "POST",
url: "MyWebService.aspx/DoSomething",
data: '{"myClass": ' + JSON.stringify(myClass) + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (result) {
alert("success");
},
error: function() {
alert("error");
}
});
y este es mi método Web:
[WebMethod(EnableSession = true)]
public static object DoSomething(MyClass myClass)
{
HttpContext.Current.Request.InputStream.Position = 0;
using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
{
Logger.Log(reader.ReadToEnd());
}
}
Si myClass en javascript se serializa para corregir el formato, luego los métodos de DoSomething se ejecutan y guardan el json sin procesar en la base de datos. Pero si myClass está mal, entonces el método no se ejecuta en absoluto y no puedo registrar el json problemático ...
¿Cuál es la mejor manera de obtener y registrar siempre el json sin procesar, que mi web método recibe, incluso si la serialización falla?
Intente googlear "solicitud de registro de IIS HttpModule" se debe encontrar algo útil (lo siento, no puedo encontrar el código relevante en este momento) – Alex
@alex - gracias, IHttpModule era exactamente lo que necesitaba. – sventevit