2012-02-05 6 views
3

WindowsサービスでホストされているWCFサービスがあります。WCFを通じてIEを開く

このサービスWCFは1 metohdを持っており、この方法で私は1つの重要なラインがあります。

Process Browser = Process.Start("iexplore.exe", hostUrl); 

を、私は、ローカルシステムとしてWindowsサービスをインストールするが、私は、そのメソッドを呼び出すようにしようとしているとき、すべてがいるようです1つの重要な行を除いて実行してください...そしてIEは開かなかった。

私はこの方法自体は、それ自体のサービスではなく、サービスのdll参照

任意のアイデア理由の一つになっていないことを追加したいと思いますか?実際にUIを表示するサービスを得るために、あなたはそれがデスクトップと対話できるようにするためにコンピュータの管理でサービスを設定する必要があると思います

+1

インターネットで「セッション0分離」を検索します。そうすれば、正しい方向に着手することができます。 –

+0

IEを開いて何を達成しようとしていますか?これは、 'HtmlAgilityPack'で' WebClient'/'HttpWebRequest'を使ってうまくいくものでしょうか? –

+0

私が開いているURLは私に開かなければなりません。IEのアドオン – MoShe

答えて

3

Windows Vista MSはセキュリティ関連の変更されたespをたくさん追加しています。この分野では、Windowsサービスは何をすることができます。デスクトップのようなもの(印刷、ネットワーク共有へのアクセス、Office Interopなどの使用)は、作業が難しく難しくなります。

IMHOの "サーバーのようなプロセス"(例えばWCFサービス)は複数の要求によって並列にアクセスできるため、このタイプの相互作用のために設計されていないプロセスは使用しないでください。あなたのWebサービスが複数のIEインスタンスをそのように起動するとどうなりますか?あなたはIEが必要に応じて動作するか、それを期待しますか?あなたが本当にそれをこの方法で行う必要がある場合

あなたは

OR

  • 二つのプロセスWCFサービスをホストしている通常のデスクトップ・プロセス、1つのWindowsのサービスを持っている必要があります1つはIEを扱う通常のデスクトッププロセスとして動作します...これら2つのプロセスはIPC経由で通信します
4

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/63a7d1ec-7077-489a-a250-f7422f04317b

」。コンピュータの管理におけるサービス]ウィンドウで、サービスのプロパティに移動し、[ログオン]タブで[サービスがデスクトップとやり取りできるようにする]をチェックします。

+0

私はそれをしましたが、それでもIEを開くことはありません – MoShe

+0

"サービスがデスクトップとやりとりするのを許可します" – MoShe

1

サービスを実行しているユーザーはどれですか?現在ログインしているユーザーの下で、デスクトップとやりとりする権限を持って実行してみてください。

一般的に、GUIプロセスを起動するサービスを持っていることは素晴らしい考えではありません。たとえば、誰もログオンしていない場合はどうなりますか?多くの人がログオンしている場合はどうなりますか?すべてのセッションで開かなければなりません...などです。単純なサービス(たとえばNet.NamedPipes)エンドポイントを公開し、それと対話する小さなクライアントUIを作成することを検討しましたか?

関連する問題