gpt4 book ai didi

c# - 使用 Exchange Web 服务 (EWS) API 查找 Exchange Server 版本的方法

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:03 25 4
gpt4 key购买 nike

我正在尝试编写一种方法来查找我通过 EWS 连接到的 Exchange Server 的 Exchange Server 版本。

很明显,读取 EWS 请求的响应 XML 的内容包含此信息,如 described here .

我很好奇我是否必须测试和错误处理,或者是否有另一种“侵入性较小”的方法来查找 Exchange 版本。

如何找到我尝试使用 EWS 访问的 Exchange 服务器的版本,以便我可以为 EWS 管理的 API 事件设置它?

我目前正在使用以下方法,但我无法想象这是最有效的方法?

foreach (ExchangeVersion exchver in Enum.GetValues(typeof(ExchangeVersion)))
{
//Console.WriteLine(exchver.ToString());
try
{
ExchangeService service = new ExchangeService(exchver);
//Do stuff here
}
catch (Exception e)
{
Console.WriteLine("Server is not " + exchver +". Trying next ExchangeVersion.");
}
}

最佳答案

我采取的策略是选择一个我“喜欢”的 EWS 版本,然后先询问该版本。由于更高版本的 Exchange 向后兼容其早期版本,因此可以要求 E2013 通过 EWS 使用 E2010 SP2“方言”与您交谈。

EWS 版本的最大区别在于 E2007 SP1 和 E2010 RTM 及更高版本之间,特别是在时区管理方面。如果你能避免完全支持E2007,你可以要求最低公分母E2010 SP1,并与更高级别和谈。如果您需要与 E2007 通话,那么您必须先尝试 E2010 SP1,然后像上面那样处理异常。当然是 YMMV,因为 E2010+ API 中存在一些差异,如图所示 here ,因此您可能更喜欢更高的级别。

自动发现完成后,您可以在另一端获取实际的 Exchange 版本并进行相应调整,例如如果您要求使用 E2010 SP1 但最终与 E2013 通话,则由于 E2010 和 E2013 之间的体系结构发生变化,因此需要以不同方式管理通知的一些亲和性问题,但这可以在 E2010 SP1 方言中完成。

我还在我的代码中提供了一个配置值,以给出关于首先尝试哪个版本的“提示”,假设在特定商店中,Exchange 服务器可能都处于同一级别。

关于c# - 使用 Exchange Web 服务 (EWS) API 查找 Exchange Server 版本的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20154235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com