2009-09-02 3 views
0

WCF 서비스를 사용할 수있게 해주는 데스크탑 컴퓨터에서 프로그램을 실행하고 있습니다. 이것은 일반 사용자로 로그인 할 때 실행되는 일반 Windows Forms 응용 프로그램입니다.asp.net codebehind에서 서버의 프로세스를 시작하고 서버 데스크탑에서 볼 수있게하십시오.

외부 웹 페이지에서 프로그램의 상태를 볼 수 있도록 WCF 인터페이스를 넣었습니다. 이것은 훌륭하게 작동하며, 실행중인 프로그램의 상태를 볼 수 있으며 심지어 상황에 맞게 변경합니다.

유일한 방법은 프로그램을 시작하는 것입니다. 웹 페이지로 이동하여 프로그램이 이 아니고이 실행 중이라면 시작할 수 있습니다. 간단한 Process.Start (programEXE)는 충분하지 않습니다. 프로그램이 시작될 때 데스크톱에 있지 않고 볼 수 없기 때문에 작업 관리자에 나타나기 때문입니다.

자격 증명을 만들고 해당 자격 증명으로 프로그램을 시작했지만 매우 모호한 "프로그램을 시작하지 못했습니다"오류가 발생하거나 내 자격 증명으로 시작되지만 여전히 바탕 화면에 나타나지 않습니다. 후자의 경우 작업 관리자에서 내 이름으로 볼 수 있지만 실제 프로그램은 표시되지 않습니다.

로그인 한 사용자의 데스크톱에 표시되는 프로그램을 서버에서 시작하려면 어떻게해야합니까? 한 명의 사용자 만 로그인 할 수 있습니다.

또한 보안 홀이되지 않도록하려면 어떻게해야합니까? 한 가지 생각은 launcher.aspx를 program.exe가있는 한 디렉터리에 대한 읽기 권한 만 있고 다른 읽기 또는 쓰기 권한이없는 사용자 ID 아래에 자체 가상 디렉터리에 launcher.aspx를 실행하는 것입니다. 다른 제안?

마지막으로, 분명히 : 아니요 사용자 컴퓨터에서 아무 것도 실행하지 않으려 고합니다.입니다. "프로그램 시작"링크를 클릭하면 클라이언트 컴퓨터가 아닌 웹 서버에 프로그램이 실행되고이 프로그램은 서버에 로그인 한 사용자에게 표시되어야합니다.

+0

다른 한 가지 덧글 : 이것은 일회용이며, 내 컴퓨터 만 제외하고는 어떤 컴퓨터에도 설치되지 않을 것입니다. –

답변

1

나는 그렇게 할 수 없다는 것이 거의 긍정적입니다. IIS는 서비스로 실행되며 이와 관련된 특정 데스크톱 환경이 없습니다. 지금하려는 것은 웹/서버 환경에서 실제로 작동하지 않습니다.

winform 응용 프로그램을 Windows 서비스로 변경 한 다음 웹 사이트를 통해 시작/중지 할 것을 권합니다. Windows 서비스에서 "데스크탑과 상호 작용"을 사용하도록 설정하면 양식을 가질 수있을 것입니다. 현재 사용자의 데스크톱 환경에 앱을 가져 오십시오.

winform 앱을 실행해야하는 유일한 사람이라면 왜 직접 앱을 시작하지 않는 것이 좋습니까? 당신은 자신의 컴퓨터가 아닌 다른 컴퓨터에서 결코 사용하지 않을 것이라고 말합니다. 따라서 바로 가기를 통해 winform 앱을 시작할 수있을 때 로컬 Winform 앱을 시작하기위한 로컬 웹 사이트에 액세스하는 복잡한 방법처럼 보입니다.

+0

그 대답은 그럴 것 같았습니다. 이제 내 앱을 서비스로 다시 작성하거나 내 앱을 시작하는 스텁 서비스를 만드는 방법을 살펴 보겠습니다. –