我正在尝试测量WCF 服务方法的Calls Duration性能计数器。
我有一个非常简单的 WCF 服务,如下所示。
服务接口:
[ServiceContract]
public interface IFooService
{
[OperationContract]
string DoSomeExpensiveOperation();
}
服务实现:
public class FooService : IFooService
{
public string DoSomeExpensiveOperation()
{
Thread.Sleep(3000);
return "Some valuable information";
}
}
当实现是同步的(如上所示)时,我可以看到 Calls Duration 正在填充。
但是,当服务实现是异步的(如下所示)时,不会填充任何内容。
服务接口:
[ServiceContract]
public interface IFooService
{
[OperationContract]
Task<string> DoSomeExpensiveOperation();
}
服务实现:
public class FooService : IFooService
{
public async Task<string> DoSomeExpensiveOperation()
{
Thread.Sleep(3000);
return await Task.FromResult("Some expensive value");
}
}
我什至尝试在等待之后发布自定义性能计数器。即使这样也没有用。
感谢是否有人可以对此有所了解。
谢谢!