簡體   English   中英

C#EWS API-訪問與配置了帳戶訪問權限的服務器不同的Exchange服務器上的項目

[英]C# EWS API - Accessing items on different Exchange server than the server where account accessing is configured

我在Exchange Server A上創建了一個帳戶,並且嘗試訪問在Exchange Server B上配置的共享郵箱X上的項目。 我具有訪問郵箱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行中的ExchangeVersion更改為除“ Exchange2007_SP1”以外的任何Exchange Server doesn't support the requested version.我收到錯誤消息, Exchange Server doesn't support the requested version. ,所以我想這不是與版本有關的問題。 我想在這種情況下,我將無法使用工作正常的MS Outlook進行連接。

我認為我很容易錯過一些事情,但是我不知道...

問題是您連接到主服務器。 如果要訪問代理帳戶,則必須將ews-url更改為存儲郵箱的服務器的ews-address。 我公司中的情況幾乎相同,並且使用不同的網址對我來說效果很好。 如果您的交換服務器配置正確,則可以使用托管api的自動發現功能“ service.Autodiscover()”來獲取正確的ews地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM