2009-03-26 9 views
3

私は内部サイトから実行したい開発者ツールを持っています。プロジェクトのソースコードをスキャンし、その情報をDBに保存します。私は、ユーザーがサイトに行って、プロジェクトを選んだり、ヒットしたりすることを望みます。ASP.Netページからツールを実行する最善の方法

プロジェクトが大きくなる可能性があるため、コードをサイトにアップロードしたくありません。自分のマシンで自分のアセンブリをローカルで実行できるようにしたい。これを行う簡単な方法はありますか?

EDIT:当面は、VS2005でこれを行う必要があります。
編集2:私はTrendMicro's Housecallと同様の機能を探しています。私はスキャンがローカルで実行したいのですが、結果は

答えて

3

ClickOnceプロジェクト(winform/wpf)は基本的には通常のクライアントアプリケーションで、Webサーバー経由でデプロイされます。クライアント側では、必要な処理を行うことができます。 VS2005/VS2008にはこれが( "winform/wpf"用) "公開"としてあり、ブラウザー(または少なくとも一部のブラウザー;-p)によって認識される ".application"ファイルが生成されます。

かもしれない Silverlightで同じことをすることができますが、厳しいサンドボックスなどがあります。Webサーバーに代わってすべてのdb作業を依頼する必要があります。

+0

これは、Webサービスを使用して結果を受け取り、ユーザーがWebサービスから生成されたページに移動する可能性があるようです送信前に結果を確認してください –

+0

(html)WebサーバーとWebサービスがデータを共有するには、dbにコミットする必要があるでしょうが...そうです。また、クライアントアプリケーションでチェックを行い、単にコミットすることもできます。 –

1

は、私はあなたがそれらをしたいよう

が鳴り、そのマシン上でローカルに私のアセンブリ を実行できるようにしたいWebページに表示しますツールをダウンロードしてローカルマシンから実行すると、それはあなたのために機能しますか?

+0

これはうまくいくと思いますが、ダウンロードした後にサイトからツールを呼び出すにはどうすればいいですか? –

0

任意のコードで、場所とアクセス許可が与えられたファイルをスキャンできます。ウェブサイトが別のマシンでexeを開き、Webサーバーに含まれているファイルを実行してアクセスを許可するには、恐ろしく低いレベルのセキュリティが必要です。これは、システム全体が実質的に完全に開かれて攻撃されることを意味します。あなたのシステムが完全にファイアウォールの背後にあり、それゆえ外部のインテリアから保護されているなら、あなたはパーミッションをもっと見たいと思っています。メモ帳の例を次のよう試みるマシン上でexeファイルを実行するには

、あなたにも指定されたディレクトリを使用する必要があるかもしれません

ProcessStartInfoのpsi =新ProcessStartInfo(「メモ帳」)。
psi.WindowStyle = ProcessWindowStyle.Hidden;

プロセスp =新しいプロセス(); p.EnableRaisingEvents = true;p.Exited + =新しいEventHandler(ExitHandlerToKillProcess); p.StartInfo = psi; p.Start();

完了したら、プロセスを終了するのを忘れないでください。代わりにjavascriptを使用します。どちらの方法でも、セキュリティアクセス許可を監視し、これを実行するリスクを覚えておいてください。

+0

これは私がhttp://housecall.trendmicro.com/のような解決策を見つけようとしている理由です –

0

私はたぶんプロジェクトデータの処理と抽出を行うコマンドラインツールやサービスを書いています。次に、Webサーバーとコマンドラインツールの両方に共通のアクセス権を持つプロジェクトを更新/登録するためにページを使用します。指定時間に手動またはcronまたは同様のメカニズムを介してデータベースにデータを抽出します。これを取得したら、最後の抽出時間と抽出されたデータを表示するだけです。

プロジェクト/エンドユーザーが異なるサブネットなどにある場合は、エンドユーザーがツールを実行してデータをデータベースに送信する必要があります。

関連する問題