是否可以记录从Web服务返回对象所花费的时间?
-
10-10-2019 - |
题
我们正在查看我们正在调用的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;
}
我尝试过,将方法放在返回的班级中,这些方法被[onserialization()]和[onserialized()]属性装饰,但这不起作用。我还试图通过尝试使用试验来捕获该方法中的时间。
有人建议我可能必须实现自己的序列化器(这只会录制时间,然后致电默认序列化器),但是只是想知道这是否是我唯一的选择?
任何想法都非常感谢。
解决方案
您可以使用 自定义soapextension. 。在ProcessMessage()方法中,您可以在序列化之前和之后看到4个事件,并在避难所化之前和之后。在Befores中启动秒表,在后面结束,然后将时间存储在某个地方。
不隶属于 StackOverflow