테스트 서버에서 충돌이 발생하고 개발 서버에서 충돌하는 코드가 있습니다. dev 및 테스트 용 2 대의 Windows 2012R2 서버가 있습니다. 둘 다 동일한 패치 레벨에서 동일한 .NET FrameWork 버전. 둘 다 현재 사용자와 시스템 로컬에 대해 동일한 지역 설정 (네덜란드어)을 갖습니다. 이 네덜란드어 설정은 - 날짜 분리 자로 - 있습니다. 다음 코드 스니 j은 dev 서 v에서 작동하지만 테스트 서 v에서 충돌합니다. 콘솔 앱에 코드 2 줄을 추가 한 다음 오류를 다시 생성 할 수 있습니다.DateTime ParseExact 다른 서버에서의 다른 동작
(데모 콘솔 응용 프로그램에 대한 간체) 코드의 일부는 다음과 같습니다
string date = "28/02/2017";
DateTime dateDate = DateTime.ParseExact(date, "dd/MM/yyyy", null);
그래서이 내 dev에 서버에서 작동하며 나는이 예외 내가 변경
Unhandled Exception: System.FormatException: String was not recognized as a vali
d DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInf
o dtfi, DateTimeStyles style)
at System.DateTime.ParseExact(String s, String format, IFormatProvider provid
er)
를 얻을 테스트 에 추락 코드는
string date = "28/02/2017";
DateTime dateDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
두 서버 모두에서 작동합니다. CurrentCultue 및 CurrentUiCulture를 콘솔 응용 프로그램에서 출력 할 때 두 서버에서 동일합니다.
내 테스트 서버에서 어떤 문제가 발생할 수 있습니까? ParseExact 메서드에서 null을 전달하면 CurrentCulture를 사용하고 날짜 분리 자/오류가 발생해야하기 때문에 코드가 내 dev 서버에서도 충돌 할 것으로 예상됩니다.
감사 대니
* 테스트 서버 *에 충돌이 그게 무슨 뜻 이죠 :
당신은 작은 따옴표로/
을 묶어야합니다는 형식 문자열에서 리터럴 문자로 만들려면? 무슨 예외가 있니? – DavidG
어쨌든 구문 분석에 culture를 지정해야합니다. – slawekwin