DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
Befehle am Server ausführen

Wenn Sie Befehle am Server ausführen lassen wollen, ist ASP die geignete Methode.
Allerdings werden Sie auf Propbleme stossen, wenn Sie externe Programme aufrufen wollen. So könnte z.b. eine Datenbanksicherung gestartet werden.
Auch wenn der Befehl Server.Execute dies suggeriert, externe Programme können damti nicht aufgerufen werden.

Um dieses Problem zu lösen gibt es drei Ansätze:
EXEC Kommando
WScript
Komponente

Beginnen wir mit dem erstem dem EXEC Kommando.
Aus dem Microsoft Urzeiten des IIS gibt es dafür eine Lösung.
Dabei wird die Ausfühurung nicht durch die ASP.DLL vorgenommen sondern durch die ssinc.dll. Erstellen Sie dazu eine Datei mit der En-dung .stm. Innerhalb dieses Files können Sie dann ein EXEC Kom-mando ausführen. Der Zusatz CMD startet ein Batchprogramm.

<!-- #EXEC CMD="E:\buch\Test.bat" -->

Was unter NT 4.0 noch reibungslos funktioniert. Ist bei Windows 2000 den veränderten Sicherheitsrichtlinien zum Opfer gefallen. Sie erhalten folgende Meldung

Die CMD-Option ist nicht für #EXEC-Aufrufe aktiviert

Um die Anweisung zu aktivieren, fügen Sie den Eintrag SSIE-nableCmdDirective asl DWORD in die Registrierung ein, und setzen Sie deren Wert auf 1.
HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet
 \Services
  \W3SVC
   \Parameters

Aber auch die Scripting Engine von Windows kann helfen. Über den Windows Scripting Host können Sie z.B. Programme ausführen oder DLLs registrieren. Denken Sie daran, das Sie kein optisches Feedback erhalten. Sie können nicht so einfach z.B. Notepad ausführen.

<%
function Srv_run(byVal SrvRun_cmd)

 on error resume next
 set oSrvRun = CreateObject("WScript.Shell")
 oSrvRun.Run SrvRun_cmd
 if err then
  oSrvRun_Err = true
  oSrvRun_sErrDesc = err.description
 end if
 set oSrvRun = nothing
 'on error goto 0
 if oSrvRun_Err then
  Srv_run = objSrvRun_sErrDesc & "!"
 else
  Srv_run = "Ok!"
 end if
end function
%>

Das registrieren einer DLL würde dann aus Ihrer ASP Seite so passieren.

Srv_run("regsrv32.exe mydll.dll")

Wenn Sie die dritte Methode mit einer Komponente in erwägung ziehen, können Sie z.B. die Freeware ASPEXEC verwenden.


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 06.01.2001
  Gültig bis: 28.03.2001
11 Ratings
Bewertung: 80,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG