2017-01-26 7 views
0

Exchange APIを使用してExchangeサーバからカレンダー情報を取得しようとしていますが、次のエラーが発生します。「Exchange Serverは要求されたバージョンをサポートしていません。カレンダーを初期化する。私が接続しているサーバーは明らかに交換のハイブリッドバージョンを実行しています。次のようにExchangeサーバからカレンダー情報にアクセスできない

私のコードは次のとおりです。

 ExchangeService service = new ExchangeService(); 
     service.Credentials = new WebCredentials("user", "pass"); 

     service.AutodiscoverUrl("url"); 

     DateTime startDate = DateTime.UtcNow; 
     DateTime endDate = startDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); 
     const int NUM_APPTS = 50; 

     //error happens on this line 
     CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet()); 
     CalendarView cView = new CalendarView(startDate, endDate, NUM_APPTS); 
     cView.PropertySet = new PropertySet(AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.Location); 
    } 

すべてのヘルプははるかに高く評価されるだろう。ありがとう。

答えて

0

アクセスするバージョンがhttps://msdn.microsoft.com/en-us/library/office/dn741586(v=exchg.150).aspxのExchangeServiceオブジェクトのバージョンを設定する必要があります。あなたはちょうどそれが起動する作業を取得したい場合、私は示唆しているサーバーは、あなたがすることもでき

service.ServerInfo.VersionStringプロパティ

を使用して実行されている

あなたは、その後のバージョンで見ることができ
new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

Autodiscoverを使用してオブジェクトを作成する前にバージョンを確認します。例:

 AutodiscoverService adAutoDiscoverService = new AutodiscoverService(); 
     adAutoDiscoverService.Credentials = ncCred; 
     adAutoDiscoverService.EnableScpLookup = true; 
     adAutoDiscoverService.RedirectionUrlValidationCallback = adAutoDiscoCallBack; 
     adAutoDiscoverService.PreAuthenticate = true; 
     adAutoDiscoverService.TraceEnabled = true; 
     adAutoDiscoverService.KeepAlive = false; 
     GetUserSettingsResponse adResponse = adAutoDiscoverService.GetUserSettings("[email protected]", (new UserSettingName[1] { UserSettingName.EwsSupportedSchemas })) 
関連する問題