2011-03-09 5 views
3

私はサービスに接続して認証を行うが、私は次のように例外で結果をしようと任意の呼び出し可能OS X上でモノを使用してEWS(Exchangeバージョン2007 SP1)を呼び出すようにしようとしている:Windowsの.NET 3.5のTimeZoneInfoインスタンスとOS XのMonoとの違いはありますか?

マイクロソフト.Exchange.WebServices.Data.ServiceResponseExceptionがスローされました "指定されたIDを持つタイムゾーンが見つかりませんでした。"

私は、いくつかの異なるIDと同じ応答ですべての結果を指定しようとしました。私はTZI ID自体がプラットフォーム間で異なるのだろうかと思い始めています。もしそうなら、誰もその違いを解決する方法を知っていますか?

答えて

5

実際には、2つのシステムのタイムゾーンIDに違いがあります。私は、各システムのタイムゾーンをループに次のコードを使用して、私が使用することに興味があったタイムゾーンのための相違点に注意してください。

foreach (TimeZoneInfo tz in TimeZoneInfo.GetSystemTimeZones()){ 
        Console.WriteLine("{0}, {1}, {2}, {3}", tz.Id, 
          tz.DisplayName, tz.StandardName, tz.DaylightName); 

      } 

それから私は、Windowsの設定を模倣インスタンスを構築するためにCreateCustomTimeZone方法を使用しました:

TimeZoneInfo newtz = TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", 
       tzi.BaseUtcOffset, "(GMT-06:00) Central Time (US & Canada)", 
       "Central Standard Time"); 

サービスコールでこのインスタンスを使用しました。私はIDを取得する必要があると推測しています(オフセット、ロングネームなども設定しました)。

+0

サービスから正確な時間応答を得るためには、のTimeZoneInfoの残りの部分は正しい属性を取得することが重要である呼び出します。 'のTimeZoneInfo newtz = TimeZoneInfo.CreateCustomTimeZone( "中央標準時"、tzi.BaseUtcOffset、 \t \t \t「(GMT-06:00)中部標準時(米国私は上記のようなコードの第二セットのオフセットのルールを含ま&カナダ)」、 "中央標準時"、 \t \t \t "中部夏時間"、tzi.GetAdjustmentRules()); ' – carloseberhardt

関連する問題