나는 실버 라이트 사용자가 다양한 시간대에 실행됩니다 응용 프로그램이 있습니다.Silverlight 응용 프로그램에서 DateTime.Utc의 안정성은 얼마나됩니까?
이 응용 프로그램은 시동시 서버에서 데이터를로드 한 다음 캐시격리 저장소에 있습니다. 내가 서버에있는 데이터를 변경하면
, 나는 모든 실버 고객 가 최신 데이터가이 날짜를 확인하려면 다음을 다운로드 할 수 있도록 "마지막 업데이트 시간"를 변경할 수 있도록합니다.
그러나, 나는 서버가 뉴욕에 있으며 업데이트 시간이 2010-01-01 17 : 00으로 설정되어있는 경우 이후 시간대 문제를 처리하는 방법에 대한 조금 혼란 스러워요 : 00 및 클라이언트 () 시애틀 검사는 현지 시간 2010-01-01 14:00:00과 비교하여 세 시간 더 오래된 데이터를 계속 제공합니다.
내 솔루션은 항상 후UTC 시간의 업데이트 시간이 아닌 서버의 시간으로, 다음 DateTime.UtcNow와 실버 라이트 응용 프로그램 체크을 확인하는 것입니다.
소리가 들리거나 문제가있는 것처럼 쉽습니다 (예 : 해당 시간대는 컴퓨터에서 올바르게 설정되지 않으므로 SilverlightApp에서 올바른 UTC 시간을보고하지 않습니다. 누구나 경험으로 말할 수있는 방법은 캐시를 새로 고치는 데있어 DateTime.UtcNow를 사용하면 모든 경우에 사용할 수 있습니다.
DateTime.UtcNow 신뢰할 수없는 경우, 난 그냥 이 "DataVersion"정수을 증가하지만, 철저하게이 문제를 해결하는 방법을 이해하기 위해 아래로 점점 시간대 동기화 기능이 유용 할 것이다 다른 시나리오가 사용 실버 라이트 애플 리케이션에서.
맞습니다. 두 번째 방법은 더 확실합니다. 실버 라이트 클라이언트가 로컬 시간을 서버에 다시 보내고 얼마나 많은 사람들이 얼마나 많은 정보를 얻었는지에 대한 보고서를 생성하는 것이 흥미로울 것입니다. 그것은 또한이 시간대 정보를 얻을 수있는 것 : System.TimeZoneInfo.Local –