2009-12-01 6 views
0

어려운 질문입니다. 우리는 ASP.NET 응용 프로그램, IIS7 서버 (관련이 있다면 클래식 파이프 라인이 실행 중임)와 하나의 뚱뚱한 COM 객체 라이브러리를 가지고 있습니다.
응용 프로그램은이 라이브러리를 다음과 같이 사용합니다. 함수 호출, 결과 가져 오기, 보여주기.
문제는 COM 라이브러리에 언어 기본 설정을 변경할 수있는 기능이 없다는 것인데,이 기능은 "web.config"파일에서이를 초기화하고이를 변경할 수있는 확실한 방법이 없습니다.
문제는 : 사소한 방법으로 해결하는 방법입니다. 나는 ASP.NET 애플 리케이션과 서버 자체에있는 물건으로 무엇이든 할 수있다.
기본적으로, 나는 어쨌든 SetThreadCultureUI() 응용 프로그램 풀 스레드를 호출 할 필요가 있다고 생각합니다. 물론 각 언어에 대해 응용 프로그램 도메인을 거의 만들지 않고 COM을로드 할 수는 있지만 너무 많은 코딩이 될 수 있습니다.일부 COM "물건"을 외부 장소에서 바꾸기

수 .. 어떤 아이디어가 가장 빠르고 쉬운 방법일까요? (하나의 응용 프로그램 복사본이있는 여러 응용 프로그램 풀은 이미 사용 된 솔루션이지만 잘못된 응용 프로그램 풀입니다.)

답변

0

몇 가지 테스트를 수행해야합니다. COM 응용 프로그램이 실제로 web.config에서 언어 설정을 읽는다면 (솔직히 말해서 솔직히 별다른 문제가되지 않을 것입니다) 그러면별로 할 일이 없습니다. web.config를 다시 작성하는 것은 정말 어렵습니다. 파일 저장시 응용 프로그램 풀을 다시 시작해야하기 때문입니다!

경우에는, 그러나, 그것은 주어진 스레드에 대한 문화의 OS를 확인, 당신은 새 스레드를 산란 코드에 BackgroundWorker를 사용할 수 있습니다. 거기에서 문화권을 설정하고, 너무 많은 추가 오버 헤드없이 COM 객체 (적절한 스레드 보안을 보장하기 위해 lock을 사용)를 호출 할 수 있습니다.

예, 여러 개의 앱 풀은 문제에 대한 중량비이지만 ​​간단한 답변입니다. COM 라이브러리가 web.config를 읽는다면 그것이 유일한 해결책이라고 생각합니다.

관련 문제