Windows 서버에서 실행중인 C # 앱이 있습니다. 그러나 해당 서버의 시간이 올바르지 않습니다 (시간대는 괜찮습니다).
DateTime.Now가 실시간으로 반환되지만 로컬 컴퓨터 시간을 변경하지 않는 방식으로 내 C # 프로세스가 시간 서버에 동기화되도록 강제 할 수 있습니다.
너무 많아서 내 코드에서 사용하는 'DateTime.Now'를 모두 변경할 수 없습니다. 또한 동일한 DateTime 값을 사용해야하는 외부 .net DLL이 있습니다.
DateTime.Now가 실시간으로 반환되지만 로컬 컴퓨터 시간을 변경하지 않는 방식으로 내 C # 프로세스가 시간 서버에 동기화되도록 강제 할 수 있습니다.
다음은 할 수 없습니다.
이 컴퓨터 의 현재 날짜 및 시간으로 설정된 DateTime 개체를 가져 옵니다 (현지 시간으로 표시됨).
내부적으로 Windows에서는 GetSystemTimeAsFileTime()
또는 GetSystemTimePreciseAsFileTime()
함수를 호출합니다 . 즉, DateTime.Now
기계의 시간 반환을 사소하게 피할 수 없습니다 .
물론 우회 또는 두더지 (VS2012의 Fakes 및 VS2015의 IntelliTest로 대체 됨 [엔터프라이즈 라이선스 필요], VS 2008/2010 다운로드 참조)를 사용 하여 이러한 Windows API 또는 .NET API 호출을 다시 라우팅 할 수 있지만 일반적으로 그렇지 않습니다. t 싶어.
대신 서버 소유자에게 NTP를 사용하여 적절한 시간 동기화를 설정하도록 요청하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다