Exchange版本的API功能


Exchange Web服务API(包括EWS和自动发现)在开发时考虑了多版本兼容性。因此,针对Exchange 2007的应用程序也适用于从Exchange 2013开始的Exchange版本,包括Exchange Online和Exchange Online作为Office 365的一部分。

https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/web-service-api-feature-availability-in-exchange-and-the-ews-managed-api

EWS架构定义了可以发送到Exchange并由Exchange返回的数据结构。每个包含EWS功能重大更改的新版Exchange都将包含新架构。EWS和EWS模式都是向后的,并且在某些情况下,向前兼容 - 针对早期版本的EWS设计的应用程序在大多数情况下将与更高版本的EWS一起工作,并且针对更高版本的EWS的应用程序将在相同的情况下工作功能包含在早期版本中。


在设计EWS应用程序时,考虑当前Exchange的版本


https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/ews-schema-versions-in-exchange


针对EWS API,在内部和online部署上的一些区别


内部部署只能使用NTLM或者基本身份验证,而online部署可以使用Oauth身份认证;

内部部署EWS提供丰富的日志信息,而online部署限制了EWS日志的查看权限;

内部部署自动发现类型支持SOAP、SCP、POX;而online不支持SCP;


EWS在Exchange中进行限制


限制是对过度使用可能影响服务可靠性和功能的系统资源的响应性响应。Exchange不断监视关键基础架构资源(例如邮箱数据库)的运行状况。当检测到高负载因素会降低这些资源的性能时,EWS连接会根据每个调用方对此高负载条件的贡献量按比例进行限制。

Exchange中的每个客户端访问协议(包括EWS)都有一个限制策略。在设计使用EWS的应用程序时,必须考虑限制策略,以帮助确保应用程序可靠性和Exchange服务器的运行状况。

如果您是应用程序开发人员,则需要将限制因素纳入应用程序设计中。

Exchange中的限制策略不仅影响EWS,还影响到Exchange服务器的所有客户端连接,包括Office Outlook,Outlook Web App和Exchange ActiveSync使用的协议。下面是一个例子:

该CPUStartPercent在运行Exchange 2010时,限制策略可能会影响EWS性能。当客户端访问服务器(包括但不限于EWS进程)上运行的Exchange进程的平均CPU利用率超过此策略指定的值时,入站请求将被延迟以降低CPU利用率。您无法更改此策略的值,但了解它可以帮助您解决性能问题。客户端访问服务器为此值执行的采样逻辑是10秒滚动窗口的平均值。这允许进程适当地响应CPU利用率的快速峰值。超过此阈值时,将延迟到EWS的入站连接。在每个EWS请求的理论100%CPU使用率下,此延迟的上限为500毫秒(msecs)。如果批量EWS请求获得100个项目,服务器将检查CPU使用率100次(每个项目一次),最长延迟为50秒。延迟时间与CPU使用率成线性比例。在CPUStartPercent,延迟为0(线程良率),并且在100%CPU使用率下线性增加至500毫秒。由于限制策略适用于所有Exchange用户,因此CPU使用率不可能超过Exchange客户端访问服务器上的CPUStartPercent限制,因为单个用户或应用程序无法获得足够的CPU利用率来影响服务器操作。


您可以使用以下cmdlet显示内部部署Exchange Server部署的限制策略:


Get-ThrottlingPolicy - 获取一个或多个限制策略的客户端限制设置。

Get-ThrottlingPolicyAssociation - 使您可以查看对象及其关联的限制策略之间的关系。对象可以是具有邮箱的用户,没有邮箱的用户或联系人。


对EWS批处理请求的限制影响


EWS使您可以将多个项目请求批处理到客户端访问服务器执行的单个请求中。这样可以提高效率和性能。当Exchange服务器执行批处理请求时,它会在批处理中的每个项目执行后检查用户的预算。如果应用程序超出预算,则批处理中下一个项目的处理将延迟,直到该用户的预算已充值为止。要确保使用批处理操作的应用程序成功运行,请限制可以包含在单个批处理中的项目请求数,并将大批量划分为多个较小批处理以提高结果的可靠性。批处理操作对特定限制阈值的影响取决于请求的类型,要处理的项的大小(例如,UploadItems或ExportItems操作)和邮箱内容。限制策略会导致请求需要更长时间来处理,从而影响批处理操作。因此,调用者必须等待更长时间才能响应,并且由于EWS将批处理请求的执行时间限制为一分钟,因此调用可能会超时。


注意:发送大量电子邮件时可能超过EWS的并发限制


MessageRateLimit数指定可以通过任何Exchange客户端,包括EWS提交每分钟的消息数。默认情况下,此策略设置为每分钟30条消息。对于普通用户来说,这通常就足够了。但是,发送大批电子邮件的应用程序(例如作为开票计划的一部分)可能会遇到问题。超出此策略限制时,邮箱的邮件传递会延迟。具体而言,当用户或应用程序提交的消息数量大于MessageRateLimit指定的值时,消息将显示在“发件箱”或“草稿”文件夹中较长时间参数。在开发交付跟踪系统时,请务必考虑这一点,尤其是当您的应用程序使用用户通过Outlook连接的邮箱时。当延迟项目存储在“发件箱”或“草稿”文件夹中时,用户可能会将其解释为错误。

RecipientRateLimit参数指定的收件人,用户可以在24小时内解决的数量限制。例如,如果此值设置为500,则表示单个Exchange邮箱帐户每天可以向不超过500个收件人发送邮件。此限制适用于组织内部和外部的收件人的邮件。此默认限制可能会导致某些业务线应用程序出现问题,这些应用程序会执行月末发票运行,并且需要向此数量以上的收件人发送邮件。您可以使用启用批处理消息的外部服务或单独的本地出站中继解决方案来解决此限制。

更多关于客户端限制的信息参考:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/ews-throttling-in-exchange


更多信息,请关注下方微信公众号

学习笔记-Exchange Web Service API-设计_第1张图片