ProcessStartInfo Programm auf Server starten

19/02/2008 - 08:19 von Rene Lorenz | Report spam
guten tag ng,

ich habe folgende aufgabe zu lösen:
der user soll auf der website per buttonlink eine consolenanwendung auf dem
server starten.

geplantes verhalten der consolenanwendung:
-start
-zeigt eine meldung an
-wartet 20 sekunden
-ende
(zum testen halt)

problem:
nachdem der user über das internet auf den buttonlink geklickt hat, wird das
aspx-script ohne fehlermeldung ausgeführt.
die anwendung wird von windows mit folgender fehlermeldung nicht gestartet:
"die anwendung konnte nicht richtig initialisiert werden(0x0000142). klicken
sie."
nachschau in der ereignisanzeige unter system ein hinweis:
ereigniskennung 26 (falls es jemeandem was sagt. mir nicht)

diese vorraussetzungen liegen vor:
-eigener webserver mit vollen konfigurationsrechten.
-iis 6 mit angelegtem web
-im web befindet sich ein aspx-script (siehe unten)
-einfache consolenanwendung liegt auf dem server bereit

das verwendete script:

Imports System.Data.SqlClient
Imports Class_Global
Imports System.Diagnostics

Partial Class start
Inherits System.Web.UI.Page

Dim x As New ProcessStartInfo

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'Beginn des Starts
Dim Pass As New System.Security.SecureString()
Pass.AppendChar("p")
Pass.AppendChar("a")
Pass.AppendChar("s")
Pass.AppendChar("s")
x.FileName = "startpfad\Server.exe" //Pfad ist
getestet
x.WorkingDirectory = "ausführungspfad" //Pfad ist
getestet
x.Arguments = Request.QueryString("ID") //getestet
x.Arguments = Request.QueryString("Aktion") //getestet
x.UserName = "username" //lokales
konto
x.Password = Pass
x.UseShellExecute = False
Process.Start(x)
Response.Redirect("start_ende.aspx") //ergebnisseite
End Sub

End Class


das habe ich bisher getan:

-consolenanwendung erfolgreich getestet
-IIS Admin Service einstellung für die interaktion mit desktop gesetzt
-websitekonfiguration im iis (asp.net) konfiguration/registerblatt anwendung
lokaler identitàtswechsel auf ein berechtigtes benutzerkonto gelegt (momentan
ein adminaccount zum test)
-server neu gestartet

fragestellung:
warum kann das benutzerkonto die consolenanwendung "hàndisch" fehlerfrei auf
dem server starten, jedoch nicht über das script?

anmerkung.
ich bin ein "learning by doing"-typ und habe schon diverse foren zu diesem
thema abgesucht. leider ohne lösungsfund. wenn jemand eine lösung hat, dann
bitte ich ganz nett um eine ausführlichere antwort. damit ich die chance habe
es mit meinem wissenstand nachzuvollziehen (suche in anderen quellen).

eine quellenangabe würde mir auch schon weiterhelfen.

danke im vorraus
rene
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
19/02/2008 - 08:39 | Warnen spam
Hallo Rene,

"Rene Lorenz" schrieb:

der user soll auf der website per buttonlink eine consolenanwendung auf dem
server starten.



Und was sollte das (außer ggfs. sicherheitstechnischen Problemen) bringen?

geplantes verhalten der consolenanwendung:
-start
-zeigt eine meldung an
-wartet 20 sekunden



Spàt. hier sollte doch klar sein, dass sowas in einer Webanwendung nichts zu
suchen hat. Ist das ein Intranetserver? Falls ja, was macht die Konsolen-
anwendung, dass man auf sie warten müsste?

nachdem der user à¼ber das internet auf den buttonlink geklickt hat, wird das
aspx-script ohne fehlermeldung ausgefà¼hrt.



Schau mal in den TaskManager, ob die aufgerufene Anwendung noch in der Prozess-
liste steht.

die anwendung wird von windows mit folgender fehlermeldung nicht gestartet:
"die anwendung konnte nicht richtig initialisiert werden(0x0000142). klicken
sie."



Wird da irgendwas ausgegeben, bzw. muss die Konsolenanwendung zwingend ein
Fenster öffnen? Ist auf dem Webserver ein Virenscanner installiert? Und
nochmal: Was macht die Konsolenanwendung überhaupt bzw. setzt diese evtl.
irgendwelche Sachen voraus, die beim Starten aus IIS heraus nicht gegeben
sind?

warum kann das benutzerkonto die consolenanwendung "hà¤ndisch" fehlerfrei auf
dem server starten, jedoch nicht à¼ber das script?



Weil das in der Form nie vorgesehen war und sowas daher zu unvorhersehbaren
Problemen führen kann?

Wenn ich ehrlich sein soll, würde ich das Anwendungskonzept umstellen. Aber
auf mich hört ja keiner^^

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen