Pregunta

Estamos analizando algunos problemas de rendimiento con un servicio web que estamos llamando. He conseguido código de grabación lugar de tiempo a través de los métodos de servicio web en sí reales, pero ahora se está mirando como si el tiempo real que se necesita para serializar el conjunto de resultados podría ser un problema?

Así que estoy buscando para registrar cómo serializar largo de estos datos está tomando, pero estoy luchando para obtener ningún resultado ..

Este es un ejemplo método de servicio web tenemos:

[AuthExtension]
[WebMethod]
[SoapHeader("AuthHeader", Direction = SoapHeaderDirection.In)]
public ResultSet CheckAvailability(FareSelections fareSelections)
{
    ResultSet results = null;
    results = Logic.CheckAvailability(fareSelections, AuthHeader.Token, timeLogger);
    return results;
}

He tratado, la colocación de los métodos de la clase que se devuelven que están decoradas con [OnSerializing ()] y [OnSerialized ()] atributos, pero esto no funciona. También he tratado de tiempos de captura en el método mediante el uso de un try..finally bloque, pero no creo que este es el registro del tiempo de serialización real tampoco?

Se ha sugerido que tal vez tenga que poner en práctica mi propia serializador (que serían simplemente los tiempos de registro y luego llamar al serializador predeterminado de todos modos), pero se preguntaba si esto era la única opción que tengo?

Cualquier pensamiento muy apreciado.

¿Fue útil?

Solución

You could use a Custom SoapExtension. In the ProcessMessage() method, you can see 4 events, Before and After serialization and Before and After deserialization. Start a stopwatch in the Befores, end it on the Afters, then store the time away somewhere.

Otros consejos

warp the call around a Stopwatch object

from memory:

  Stopwatch sw = Stopwatch.Startnew();
  //stuff
  sw.Stop();
  print sw.ElapsedMilliseconds();

Couldnt you use the service trace viewer to check to see how long each request is taking?

You should use something like Ants profiler (an eval version would do) to profile those methods in question.. it will give you a very good insight.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top