2009-03-26 8 views
3

Ich habe ein Entwickler-Tool, das ich von einer internen Website ausführen möchte. Es scannt Quellcode eines Projekts und speichert die Informationen in einer Datenbank. Ich möchte, dass Benutzer in der Lage sind, zur Website zu gehen, ihr Projekt auszuwählen und auf Ausführen zu klicken.Die beste Methode zum Ausführen eines Tools von ASP.Net Seite

Ich möchte nicht, dass der Code auf die Site hochgeladen wird, da die Projekte groß sein können. Ich möchte meine Assembly lokal auf ihrem Computer ausführen können. Gibt es einen einfachen Weg, dies zu tun?

EDIT: Ich sollte zur Kenntnis nehmen, vorläufig muss dies in VS2005 erreicht werden.
EDIT 2: Ich bin auf der Suche nach ähnlichen Funktionen zu TrendMicro's Housecall. Ich möchte, dass die Scan lokal auszuführen, aber das Ergebnis in der Web-Seite

Antwort

3

Sie können ein ClickOnce-Projekt (winform/wpf) verwenden - im Wesentlichen eine normale Client-App, die über einen Webserver bereitgestellt wird. Beim Kunden kann es tun, was es braucht. VS2005/VS2008 haben dies (für winform/wpf) als "Publish" - und führt zu einer ".application" -Datei, die vom Browser (oder zumindest einigen Browsern; -p) erkannt wird.

Sie könnte in der Lage sein, das gleiche mit Silverlight zu tun, aber das hat eine strengere Sandbox, etc. Es würde auch den Webserver fragen müssen, um alle db Arbeit in seinem Namen zu tun.

+0

Dies scheint eine mögliche Lösung mit einem Webservice, um das Ergebnis zu akzeptieren und den Benutzer auf eine Seite aus dem Webservice zu generieren Überprüfen Sie die Ergebnisse vor dem Einreichen –

+0

Nun, vermutlich müssten Sie eine db verpflichten, um den (html) Web-Server und den Web-Service Daten zu teilen ... aber ja, so etwas. Sie können auch einfach in der Client-App einchecken und einfach festschreiben. –

1

Ich will meine Versammlung können angezeigt werden, laufen lokal auf ihrem Rechner

Klingt wie Sie sie wollen Laden Sie das Tool herunter und führen Sie es von der lokalen Maschine aus, funktioniert das für Sie?

+0

Das würde funktionieren, die Frage ist, wie rufe ich das Tool von der Website nach dem Download –

0

Jeder Code kann Dateien mit dem Standort und den Berechtigungen scannen. Wenn eine Website eine exe auf einer anderen Maschine öffnen und zulassen würde, dass sie laufen und Zugang zu den Dateien auf dem Webserver erhalten würde, würde dies ein erschreckend niedriges Sicherheitsniveau erfordern, was bedeuten würde, dass das gesamte System praktisch vollständig für Angriffe offen ist. Wenn sich Ihr System vollständig hinter einer Firewall befindet und somit vor externen Interaktionen geschützt ist, möchten Sie mehr über die Berechtigungen und weniger über den Code erfahren.

Um eine exe auf einer Maschine versuchen laufen folgende Notizblock Beispiel, wenn Sie

Process psi = new Process („notepad.exe“) als auch ein bestimmtes Verzeichnis verwenden müssen können;
psi.WindowStyle = ProcessWindowStyle.Hidden;

Prozess p = new Prozess(); p.EnableRaisingEvents = Wahr; p.Exited + = neuer EventHandler (ExitHandlerToKillProcess); p.StartInfo = psi; p.Start();

und vergessen Sie nicht, den Prozess zu beenden. Verwenden Sie alternativ Javascript. So oder so beobachten Sie die Sicherheitsberechtigungen und erinnern Sie sich an die Risiken, dies zu tun.

+0

Deshalb versuche ich eine Lösung wie http://housecall.trendmicro.com/ zu finden –

0

Ich würde wahrscheinlich eine Art Kommandozeilenwerkzeug oder -dienst schreiben, der die Verarbeitung und Extraktion von Projektdaten übernimmt. Dann würde ich eine Seite zum Aktualisieren/Registrieren von Projekten verwenden, auf die der Webserver und das Befehlszeilentool gemeinsam Zugriff haben. dann zu bestimmten Zeiten entweder manuell oder über Cron oder ähnliche Mechanismen extrahieren die Daten in Ihre Datenbank. Sobald Sie dies haben, verwenden Sie einfach die Website, um die letzten Extraktionszeiten und die extrahierten Daten anzuzeigen.

Wenn sich die Projekte/Endbenutzer in einem anderen Subnetz usw. befinden, benötigen Sie die Endbenutzer, um das Tool auszuführen und die Daten dann in die Datenbank zu stellen.

Verwandte Themen