EWS托管API,为什么Item.DateTimeSent.Millisecond始终为零?

时间:2018-12-04 05:24:48

标签: c# asp.net-mvc exchange-server exchangewebservices ews-managed-api

我正在尝试计算发送电子邮件所花费的时间和接收电子邮件所花费的时间。我在程序中使用EWS,我将流通知设置为在新邮件到达收件人邮箱时接收回叫。

收到通知后,将Itemevent与ews服务绑定,我检查了项目属性DateTimeCreated,DateTimeSent,DateTimeReceived。所有这些属性都是DateTime对象。

我检查了DateTimeSent的毫秒始终为0,而​​DateTimeCreated,DateTimeReceived的毫秒值为毫秒。

我不知道为什么每次DateTimeSent毫秒总是为0。如果我想计算从发送到接收我应该怎么做。

DateTimeReceived-Datetimesent是发送和接收消息的实际时间吗?

或者计算发送和接收消息所用时间的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

实际测量$directories !is_array怎么样?因此例如显示总毫秒数,但您可以将其更改为适合

$directories = (array)$directiories;

答案 1 :(得分:0)

在EWS托管API中,ExchangeService类具有一个精度属性,需要在进行任何调用之前对其进行设置,请参见https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeservice.datetimeprecision(v=exchg.80).aspx

答案 2 :(得分:0)

将DateTimePrecision设置为毫秒

   ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
    service.Credentials = new WebCredentials(username, password);
    service.Url = new Uri(ConfigSettings.EmailConnectionUrl);
    service.DateTimePrecision = DateTimePrecision.Milliseconds;