2009-09-02 3 views
0

WCFサービスを利用できるようにするデスクトップマシン上でプログラムを実行しています。これは、通常のユーザーとしてログインしたときに実行する通常のWindowsフォームアプリケーションです。asp.net codebehindのサーバーでプロセスを起動し、サーバーのデスクトップに表示します。

外部Webページからプログラムのステータスを確認できるように、WCFインターフェイスを配置しました。これはうまくいく、私は実行中のプログラムの状態を見ることができ、私が合っているように物事を変えることさえできる。

私ができないのは、プログラムを起動することだけです。私がウェブページに行って、プログラムがでなくて、が走っていれば、私はそれを始めることができます。単純なProcess.Start(programEXE)は、プログラムの起動中にデスクトップにはなく、見ることができないので、タスクマネージャーに表示されます。

資格情報を作成しようとしましたが、これらの資格情報でプログラムを起動しようとしましたが、非常に曖昧な "プログラムの開始に失敗しました"というエラーが表示されるか、または資格情報で始まります。後者の場合、タスクマネージャで自分の名前で表示されますが、実際のプログラムは表示されません。

ログインしているユーザーのデスクトップに表示されるサーバー上のプログラムを起動するにはどうすればよいですか(ユーザーは1人しかなく、そのユーザーは常にログインしています)。

また、これがセキュリティホールにならないように私ができることは何ですか?私が考えていたのは、launcher.aspxを独自の仮想ディレクトリ内で、program.exeがあるディレクトリへの読み取りアクセス権しか持たないユーザーIDの下で実行することでした。他の読み取りまたは書き込みのアクセス許可はありません。その他の提案はありますか?

最後に、私はではありません。は、ユーザーのコンピュータで何かを起動しようとしています。 「プログラムを起動する」リンクをクリックすると、Webサーバー上のプログラムが起動され、クライアントマシン上には表示されず、サーバーのログインユーザーにそのプログラムを表示する必要があります。

+0

他の1つのコメント:これは自分自身のための1回限りであり、おそらく自分自身以外のどのコンピュータにもインストールされることはありません。 –

答えて

1

私はあなたがそうすることができないとほぼ肯定的です。 IISはサービスとして実行され、関連する特定のデスクトップ環境はありません。あなたがやろうとしていることは、Web /サーバー環境では実際には機能しません。

ウィンフォームアプリケーションをWindowsサービスに変更してから、ウェブサイトから開始/停止することをお勧めします。 Windowsサービスで「対話」を有効にすると、フォームを使用できるようになると思います。現在のユーザーのデスクトップ環境にアプリケーションを持ち込みます()。

winformアプリケーションを実行する必要がある唯一の人は、自分でアプリを起動するのはなぜですか?あなた自身のコンピュータ以外のコンピュータではおそらく決して使用されないだろうと述べているので、地元のWebサイトにアクセスしてショートカットでwinformアプリケーションを起動するだけの複雑な方法のようだ。

+0

私は答えがそういうものになるのではないかと心配しました。今、私のアプリをサービスとして書き直すか、私のアプリを起動することだけがスタブサービスを作成するかを見てみましょう... –

関連する問題