0

我在 Exchange Server 上创建了一个帐户A,我正在尝试访问X在 Exchange server 上配置的共享邮箱上的项目B。我需要访问邮箱的权限,X并且可以使用 MS Outlook 进行访问,但无法使用 EWS 托管 API 进行访问。我使用了以下代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials("user.name@organization.com", "password");
service.Url = new Uri("https://organization.com/EWS/Exchange.asmx");
Mailbox somemailbox = new Mailbox("some.mailbox@organization.com");
FolderId folderInbox = new FolderId(WellKnownFolderName.Inbox, somemailbox);
FindFoldersResults findResults = service.FindFolders(folderInbox, new FolderView(int.MaxValue));

这将返回一个错误:"The account accessing the resource must be on the same Mailbox Server version as the delegate account being accessed."指向代码的最后一行 (service.FindFolders)。

一开始我以为服务器的版本不兼容,但是当我ExchangeVersion将代码的第1行更改为“Exchange2007_SP1”以外的任何其他内容时,我收到了错误消息Exchange Server doesn't support the requested version.,所以我想这不是版本相关的问题。我想在这种情况下,我将无法使用工作正常的 MS Outlook 进行连接。

我认为我错过了一些非常容易的东西,但我不知道是什么......

4

1 回答 1

0

问题是您连接到主服务器。如果要访问委托帐户,则必须将 ews-url 更改为存储邮箱的服务器的 ews-address。我的公司有几乎相同的情况,并且使用不同的网址对我来说效果很好。如果您的交换服务器配置正确,您可以使用托管 api 的自动发现功能 'service.Autodiscover()' 来获取正确的 ews-address。

于 2013-01-27T10:18:25.933 回答