用于对 Exchange 的 EWS 应用程序进行故障排除的工具和资源
查找可帮助你解决 EWS 托管 API 或 EWS 应用程序问题的资源。
事情并不总是按计划进行。 有时 EWS 请求失败,或提供意外结果。 这可能令人沮丧,尤其是在原因不明显时。 希望这永远不会发生,但如果这样,本文将提供可用于帮助解决问题的工具和资源的信息。
注意
本文提供了一般疑难解答建议和疑难解答信息源。 遗憾的是,无法提供详细的故障排除步骤。 有关对特定错误进行故障排除的帮助,请参阅 后续步骤。
检查 SOAP 请求和响应
如果工作不正常,能够看到发生了什么真的很有帮助。 调查 EWS 或 EWS 托管 API 的问题时,第一条查询是检查应用程序通过网络发送的请求以及服务器发送回的响应。
EWS 托管 API 使用其内置跟踪功能使检查 SOAP 请求和响应变得容易。 如果正在使用 EWS,你可能有或可能没有访问类似跟踪功能的权限,具体取决于用于发送请求的平台或类。 但是,你始终可以使用网络跟踪工具(如网络监视器或 Fiddler)来检查网络流量并查看请求和响应负载。
此外,你可以检测客户端请求以增加请求和响应中可用的信息。
收到请求和响应后,询问你自己:它们看起来是否正确? 应用程序发送的值是否符合预期? 响应是否有意义?
检查错误代码
有时,错误代码对查明问题大有帮助,即使第一次看到似乎没有意义。 该错误是否表明客户端受到限制? 是否可以调用自动发现来刷新配置信息?
有关处理特定错误的详细信息,请参阅以下文章:
验证版本
EWS 操作涉及许多不同组件,这些组件的版本可能会影响结果。
表 1. 可能影响 EWS 进程的版本控制组件
组件 | EWS 托管 API | EWS | 注释 |
---|---|---|---|
已请求的服务器版本 |
ExchangeServiceBase.RequestedServerVersion 属性 |
RequestServerVersion 元素 |
该值控制使用哪个版本的 EWS 架构来处理 EWS 请求。 确保此处指定的架构版本对你发送的请求有意义。 某些属性和操作在架构的早期版本中不可用。 |
服务器版本 |
ExchangeServiceBase.ServerInfo 属性 |
ServerVersionInfo 元素 |
该值由服务器在 EWS 响应中返回,并指示处理响应的服务器的版本。 确保此值符合预期。 如果可能,请确保 Exchange 服务器运行 Exchange 主要版本的最新更新。 |
EWS 托管 API 版本 |
Microsoft.Exchange.WebServices.dll 文件的产品版本属性。 |
不适用 |
如果使用的是 EWS 托管 API,请确保使用的是最新版本。 |
验证访问
默认情况下启用 EWS,但可以更改默认值。 使用 Get-OrganizationConfig cmdlet 确保在服务器上启用 EWS,并使用 Get-CASMailbox cmdlet 确保为用户邮箱启用 EWS。 还要检查 EWS 允许或阻止列表的两个 cmdlet 响应,并确保应用程序没有阻止使用 EWS。
还应验证 EWS 虚拟目录上的默认身份验证设置是否尚未修改。
尝试其他 EWS 客户端
有时,尝试来自另一个客户端的相同请求并比较结果会很有帮助。 如果另一个客户端得到不同的结果,有什么不同? 找出成功请求和失败请求之间的区别有助于解释特定请求失败的原因。
尽管你当然可以编写要测试的另一个客户端,但不必这样! EWSEditor 是使用 EWS 托管 API 和 EWS 的示例客户端。 你可以下载客户端(包含源代码)并使用它以尝试应用程序中失败的相同请求。
检查 IIS 日志
如果你有权访问 Exchange 服务器,则客户端访问服务器上的 Internet Information Services (IIS) 提供的日志记录功能可以提供有关故障的详细信息。 但是,请注意,IIS 日志仅在你收到 HTTP 错误时有用。
IIS 提供了两种不同的日志记录方法:IIS 日志记录和失败请求跟踪。 若要使用 IIS 日志,可以使用 Log Parser Studio,其中包含大量内置 EWS 查询。
后续步骤
现在,你已了解可用于排除故障的工具和资源,你可能需要帮助以了解这些工具提供的信息。 以下是获取帮助的一些选项:
Q&A 上的 Exchange 服务器开发论坛 - 向 Q&A Exchange 服务器开发社区提问。
StackOverflow - 向 StackOverflow 社区提问。 请务必使用“ews”标记帖子。
Microsoft 支持 - 联系 Microsoft 支持专业人员寻求帮助。
另请参阅
另请参阅以下文章:
下载以下内容: