我们正在查看我们正在调用的 Web 服务的一些性能问题。我已经设法在整个实际的 web 服务方法本身中放置时间记录代码,但现在看起来序列化结果集所需的实际时间可能是一个问题?
所以我希望记录序列化这些数据需要多长时间,但我正在努力获得任何结果..
这是我们拥有的示例 Web 服务方法:
[AuthExtension]
[WebMethod]
[SoapHeader("AuthHeader", Direction = SoapHeaderDirection.In)]
public ResultSet CheckAvailability(FareSelections fareSelections)
{
ResultSet results = null;
results = Logic.CheckAvailability(fareSelections, AuthHeader.Token, timeLogger);
return results;
}
我已经尝试过,在返回的类中放置用 [OnSerializing()] 和 [OnSerialized()] 属性装饰的方法,但这不起作用。我还尝试通过使用 try..finally 块来捕获该方法中的时间,但不认为这也记录了实际的序列化时间吗?
有人建议我可能必须实现自己的序列化程序(它只会记录时间然后调用默认的序列化程序),但只是想知道这是否是我唯一的选择?
任何想法都非常感谢。