我最近使用C#編寫了.NET控制檯應用程序。它的目的是讀取特定文件夾中的電子郵件,解析它們的特定值並將它們保存到數據庫中。無法訪問公用文件夾根目錄
我最初編寫這個代碼時,我們的電子郵件系統是Exchange 2003.但是,我意識到我們很快就會升級到Exchange 2010:ergo,我構建了可在兩種環境中工作的代碼。
但是,在遷移到Exchange 2010之後,該應用程序已損壞。
該應用程序使用2010年功能的EWS API。當它嘗試使用ExchangeService的FindFolders方法查找publicfoldersroot時,它會引發異常。下面的代碼:
ExchangeService service = new ExchangeService();
FindFoldersResults findRootFldrs;
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("[email protected]", delegate(string x) {
return true; });
FolderView fview = new FolderView(100);
fview.Traversal = FolderTraversal.Deep;
findRootFldrs = service.FindFolders(WellKnownFolderName.PublicFoldersRoot,
fview);
例外:ErrorInvalidSchemaVersionForMailboxVersion
,又名:
被請求的郵箱不支持指定RequestServerVersion
我已經嘗試:
將exchangeservice設置爲2007(拋出一個例外:「發生內部服務器錯誤。操作失敗。「)
給自己的權限到公用文件夾的最高水平(無效果)
手動設置我的憑據(無效果)
我可以查看公共文件夾在Outlook 2007中; publicfoldersroot屬性在智能感知中可用;代碼適用於本地文件夾(我可以解析我的收件箱)
我目前的想法是,它是最近設置的Exchang e 2010:不幸的是,這不是我的領域。異常告訴我它試圖使用以前版本的Exchange。將其設置爲2007只會導致代碼失敗並顯示內部服務器錯誤。