2009-07-07 2 views
6

하나의 webapplication에서 나는 firebird 데이터베이스에 연결하고 다른 것들 사이에 데이터베이스에서 일부 날짜를 구문 분석하는 일반 응용 프로그램을 시작할 때 IHttpHandler가 있습니다.Process.Start culture 지정

데스크톱에서 실행하면 응용 프로그램이 문제없이 수행해야하는 작업을 수행합니다. 하지만 httpHandler에서 시작될 때 잘못된 문화로 끝나고 날짜를 파싱하지 못합니다. 필자는 culture를 web.config와 CurrentThread.CurrentCulture로 설정했지만 여전히 잘못된 것으로 끝납니다. 이 모든 것은 culture가 sv-SE로 설정된 영어 Windows Server 2003에서 실행됩니다.

특정 문화권으로 System.Diganotics.Process.Start를 사용하여 응용 프로그램을 시작할 수있는 방법이 있습니까? 새로 시작한 프로세스가 어떤 문화권을 사용하지 않는 경우?

+0

더 자세히 설명 할 수 있습니까? 달성하려는 목표는 무엇입니까? – Lazarus

답변

2

문화를 지정하는 방법이 없다고 생각합니다. CultureInfo 클래스는 .NET에만 국한되며, 아는 한 Windows에 문화권에 대한 응용 프로그램 별 개념은 없습니다. Process 및 ProcessStartInfo 클래스를 사용하여 문화권을 지정할 방법이 없습니다.

그러나 문화는 현재 사용자와 관련되어 있기 때문에 일어날 수있는 일은 웹 사용자가 다른 사용자의 컨텍스트에서 실행되고 있다는 것입니다. 따라서 웹 앱에서 시작할 때 다른 앱은 ' 사용자의 문화 설정 따라서 웹 응용 프로그램을 실행하는 데 사용되는 사용자의 문화 (국가 별 설정)를 변경할 수 있습니다.

한편, 실행중인 .NET 응용 프로그램 인 경우 문화를 하드 코딩 할 수 있습니다.

+0

예, 일부 사용자 설정에서 할 수있는 느낌이 들었습니다. 불행히도 그 안의. NET 응용 프로그램과 나는 그것을 쉽게 수정할 수 없습니다. 그래서 나머지 질문이 있습니다. 시스템 계정의 지역 설정을 변경하려면 어떻게합니까? – Tjelle

+0

약간의 연구 끝에, Locales는 .NET의 CultureInfo-s에 해당하는 Windows의 원시 코드입니다. 여기에 일반적인 설명 : http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx 프로그래밍 방식으로 사용자 로캘을 변경할 수있는 방법을 찾지 못했습니다. 아마 그렇게 열심히 수색하지 않았을 수도 있습니다. 명령 줄 명령 (ServerFault 후보 질문)을 통해이를 수행 할 수있는 방법이있을 수 있습니다. 실험 해 보려면 UI를 통해 일시적으로 사용자 계정을 대화 형으로 만들고 (사용자 그룹에 추가) 로그인하고 로그인 설정을 변경하십시오. –

관련 문제