Citrix に問題があります。タイム ゾーン ( GetTimeZoneInformation()
) はクライアントの時間を返しますが、他のすべての時間関数 ( GetLocalTime()
, localtime()
) はサーバーの時間を返します。興味深いのは、SystemTimeToTzSpecificLocalTime()
関数に渡すタイム ゾーン情報がクライアントのものであっても、サーバーの時刻も返すことです。
XenApp 5.0 は tzhook.dll を使用して呼び出しにフックし、構成に応じてクライアントまたはサーバーを返します。バイアスとUTCが正しいにもかかわらずSystemTimeToTzSpecificLocalTime()
、サーバーのUTCを返す理由を説明する必要があります-バイアスの計算はクライアントの時間を返す必要がありました。
Xenapp は、クライアントのタイム ゾーンを使用するように構成されています。この記事CTX303498に基づいて、レジストリでもこれを確認しました。また興味深いのは、.Net が正しく動作し、ログに記録してクライアントの時間/タイムゾーンを返すことです。私が想定しているのは、フック dll に何らかのバグがあり、関数全体に設定が一様に適用されないということです。
Xenapp 6.0 にアップグレードする以外の解決策を知っている人はいますか? アップグレードはパイプラインにありますが、1 年ほどかかるまでは行われません。登録設定、パッチなどはありますか? 助けていただければ幸いです。
Citix Xenapp 5.0
2008 r1に勝つ
アップデート:
ホットフィックス CTX125414 を適用しました。これで、時刻がクライアントのものであるクライアント環境で得られる一貫した動作が得られますが、ローカルから UTC に変換するときにサーバーのバイアスが使用されます。
以下はテストアプリの結果です。
現地時間情報:
現在: 12/17/2013 2:50:54 PM
GetLocalTime: 14:50
localtime: Tue Dec 17 14:50:54 2013
UTC 情報: GetSystemTime: 21:50タイムゾーン情報:
バイアス、名前: 420、米国山地標準時
UTC から TZ を含むローカルへ: 14:50
UTC から TZ を含まないローカルへ: 16:50
ローカルから TZ を含む UTC: 19:50
ローカルから TZ を含まない UTC へ: 19:50固定変換:
TZ を使用した UTC からローカルへ: 14:50 TZ を
使用したローカルから UTC へ: 21:50
TimeZone 情報は Win API を使用しています。修正されたものは、バイアスから時間を計算する私のルーチンです。太字は問題と修正です。
では、この問題に対するパッチはありますか?