Starten Sie ein Programm aus ASP.NET C#
Ich habe ein Programm (ich erstellt) und ich es starten will auf dem server, wenn die Webseite lädt.
Hier ist der code ich habe
public partial class _Default : System.Web.UI.Page
{
Process app = new Process();
protected void Page_Load(object sender, EventArgs e)
{
app.StartInfo.FileName = @"D:/Path to /My/Program to be run.exe";
app.Start();
}
}
Rechts, nun wird die Anwendung "ausführen", jedoch stürzt es sofort.
Wenn ich nur die Anwendung ausführen (durch Doppelklick auf die exe-Datei) läuft es und alles ist in Ordnung.
jemand sehen, wenn ich mich hier etwas fehlt?
- Gibt es irgendeine Art von Fehlermeldung, wenn es abstürzt?
- BTW, warum machen "app" der öffentlichkeit?
- "{application name} hat aufgehört zu arbeiten. Windows wird die Suche nach einer Lösung für das problem"
- das war ein letzter verzweifelter Versuch, um die app wirklich zu laufen. Ich weiß nicht, ich habe schon tutorials Lesen und starrte auf meine alten ASP.NET Buch und mucking herum. Vergessen zu entfernen, bevor ich gepostet mein Beispiel-code.
- Nichts im Ereignisprotokoll der Fehler???
- Verwenden Sie ASP NET Development Server?
- Ich bin neu ASP.NET,, Also ja? aber nur ja davon aus, dass die Standard-Server-VS2010 erstellt beim erstellen der Webseite.
- Versuchen Sie, mehr Eigenschaften in der ProcessStartInfo-Objekt, wie das Arbeitsverzeichnis.
- Versuchen Sie, erstellen eines trivial-Konsole-Anwendung, und laufen. Dadurch wird verhindert, dass die jeweilige Anwendung berücksichtigt.
- Könnte Wetten, ein Berechtigungen-Ding. Obwohl Sie denken .NETTO würde werfen Sie einen sicherheitsrelevanten Fehler, man weiß ja nie. Ich nehme an, die Identität/Konto cassini läuft unter wahrscheinlich nicht über ausreichende Berechtigungen verfügen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie ProcessStartInfo startInfo.
app.StartInfo.FileName = @"...";
Linie ist.Process
variable außerhalbPage_Load
oder weil man vergessen hat, die CWD.Es klingt wie die Anwendung, die Sie versuchen zu laufen über eine Benutzeroberfläche verfügt. Wenn Sie die Absicht ist, führen Sie diese auf den server mit der ASP.NET Anwendung pool-Konto, werden Sie weniger Probleme haben, wenn Sie entwerfen die Anwendung als Konsolenanwendung, und schützen Sie alle Zugriff auf externe Ressourcen, wie Sie Ihre HMI-Gerät, mit angemeldet Ausnahmen.
Dies ist eine Frage der Sicherheit. Ausführen einer exe-Datei, die von außerhalb der bin-Ordner stellt eine Bedrohung für die Sicherheit. Kopieren Sie die exe-Datei, die Sie versuchen, auszuführen, in den bin-Ordner.
Es hängt davon ab, was Sie versuchen zu laufen. Vielleicht, wenn Sie führen Sie es von Ihrem C# - app etwas fehlt. Sie könnten auch nicht über die richtigen Berechtigungen zum ausführen der app von C#. Das ist alles ich kann wirklich sagen, ohne zu wissen, was Sie versuchen zu laufen.
Haben Sie versucht, so etwas wie dies in Javascript :-