2010-01-08 2 views
3

웹 서비스가 IIS와 함께 실행 중입니다. 초기화 서비스를 호출 할 때 wpf 응용 프로그램을 시작하기 위해 일부 라이브러리가 동적으로로드됩니다.웹 서비스에서 WPF 응용 프로그램을 시작하는 방법은 무엇입니까?

코드가 컴파일되고 실행되지만 ... 창이 나타나지 않습니다. 예외는 전혀 발생하지 않습니다. 다음은

는 WPF 응용 프로그램을 만드는 실행되는 코드입니다 :

public void Start() 
{ 
ThreadStart ts = Run; 
     Thread t = new Thread(ts); 
     t.SetApartmentState(ApartmentState.STA); 
     t.Start(); 
} 

[STAThread] 
public void Run() 
{ 
try 
     { 
     App app = new App(); 
       MainWindow w = new MainWindow(); 
       w.Show(); 
       app.Run(w); 
     } catch (Exception e) 
     { 
     LogManager.GetLogger("general").Debug(e.StackTrace); 
     } 
} 

내가 콘솔 응용 프로그램에서, 그것은 완벽하게 작동하는지 실행하는 경우 : 나는에서 실행하는 경우

static void Main(string[] args) 
    { 
     MyApplication app = new MyApplication(); 
     app.Start(); 
     Console.ReadKey(); 
    } 

을하지만, 웹 서비스, 코드가 제대로 실행됩니다 (예외없이 디버깅 할 수 있음). 창이 표시되지 않습니다.

public void initialize() { 
IMyApplication application = assembly.CreateInstance(namespaceValue + ".MyApplication") as IMyApplication; 
     application.Start(); 
} 

프로세스 관리자에서 WPF 프로세스가 실행 중임을 알 수 있습니다. 왜 창이 나타나지 않는지 아는가?

감사합니다,

프랑소와


웹 서비스에 대한 모든 액세스/rigths을 부여 할 수있는 특별한 무언가가 있나요?

답변

1

응용 프로그램 풀을 확인하고 해당 사용자가 사용하는 사용자 또는 가장을 사용하는 경우 알려주십시오.

내 첫 번째 추측은 서비스 사용자 (바탕 화면을 망칠 권한이없고 특히 데스크톱이 아닙니다)로 실행되는 것입니다. 일반적으로 나는 이것이 이상한 일이라고 생각합니다.

브라우저 응용 프로그램에서 Silverlight를 사용하지 않는 이유는 무엇입니까? 왜 ClickOnce가 없습니까?

+0

hummm, 나는 SII ... 의 specialit하지 오전하지만 웹 서비스 응용 프로그램 보호를 사용하는 관리 구성 도구에서 볼 수있다 : 보통 (풀링)이 는이 질문에 대답합니까? – Francois

+0

Web.config 파일에 다음과 같이 입력했습니다. Francois

+0

실제로 웹 서비스 상단에 동일한 컴퓨터에서 비즈니스 모델을 로컬로 관리하는 데스크톱 응용 프로그램을 빌드하는 것이 좋습니다. 따라서 메모리에있는 객체를 공유하려면 웹 서비스가 애플리케이션을 설치하고 비즈니스 모델을 전달해야합니다. 성능 문제 때문에 웹 서비스와 로컬로 통신하고 싶지 않습니다. – Francois

관련 문제