WinFuture-Forum.de: Batchaufruf C# Auf Iis7 (konvertierung .net1.1->2.0?) - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Batchaufruf C# Auf Iis7 (konvertierung .net1.1->2.0?)


#1 Mitglied ist offline   SchroederX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 586
  • Beigetreten: 20. Oktober 05
  • Reputation: 10
  • Geschlecht:Männlich
  • Wohnort:NRW

geschrieben 31. März 2010 - 21:44

Ich habe folgenden Plan:

Möchte meinen kleinen Server per Button auf einer Seite abschalten können - wobei ich es schon geschafft habe, ihn per WakeOnLAN über Internet einschalten zu können.

Dazu habe ich die folgenden beiden Skripte/Files im Netz gefunden:

remote.aspx
CODE
<%@ Page language="C#" CodeBehind="remote.aspx.cs" AutoEventWireup="false" Inherits="restartWindows.WebForm1"%>
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 144px; POSITION: absolute; TOP: 176px" runat="server" Text="Shut Down"></asp:Button>
<asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 328px; POSITION: absolute; TOP: 176px" runat="server" Text="Restart Windows"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 103; LEFT: 72px; POSITION: absolute; TOP: 64px" runat="server" Width="488px" Height="48px" Font-Bold="True" ForeColor="#000040">Sample Program to Show How to remotely Shutdown or Restart Windows</asp:Label>
</form>
</body>
</HTML>


remote.aspx.cs
CODE
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace restartWindows
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button2;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.WorkingDirectory = Request.MapPath("~/bin");
myProcess.StartInfo.FileName = Request.MapPath("~/bin/ShutdownSrv.bat");
myProcess.Start();
}

private void Button2_Click(object sender, System.EventArgs e)
{
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.WorkingDirectory = Request.MapPath("~/bin");
myProcess.StartInfo.FileName = Request.MapPath("~/bin/RestartSrv.bat");
myProcess.Start();
}
}
}


Im /bin-Ordner liegen dann zwei Batch-Dateien, die mit dem shutdown-Befehl den Rechner ausschalten oder rebooten.

Habe leider herzlich wenig Ahnung von Programmierung und Webseiten, habe auf dem IIS ansonsten nur einen WSUS laufen.
Wenn ich die Dateien oben dann auf einem 2003er Server ohne WSUS kopiere und CodeBehind in src ändere, dann bekomme ich die Seite mit den zwei Buttons angezeigt und das Skript macht, was es soll. Das funktioniert auch mit dem ASP.NET-Server, der mit VisualStudio gestartet wird, wenn man sich das Projekt im Browser anzeigen lässt.

Auf meinem 2008er Server bekomme ich nur die Seite angezeigt, ein Klick auf die Buttons bewirkt nichts.
Also habe ich erstmal wild mit im IIS-Manager rumgespielt, bin aber nicht weiter gekommen. Auch im Eventlog habe ich keine hilfreichen Informationen gefunden. Ich schätze aber, dass die Batchdateien nicht aufgerufen werden oder nicht die richtigen Zugriffsrechte bestehen. Allerdings bin ich mit dem IIS7-Manager noch nicht besonders vertraut, so dass ich da nicht weiter komme.

Meine andere Vermutung ist, dass auf 2008 das NET1.1 nicht mehr so implementiert ist, wie ich das für mein Skript brauche. Daher habe ich gedacht, dass ich die Dateien vielleicht zu ASP.NET2.0 konvertieren muss. Leider habe ich keine Projekt- oder Solutions-Datei von VisualStudio2003, was mir ein automatisches Konvertieren in VS2008 erlauben würde.

Kann mir jemand weiter helfen, wie ich den IIS7 dazu bringe, die Batch-Dateien richtig aufzurufen? Und vielleicht hat noch jemand ein paar Tipps, wie ich die Berechtigungen so setze, dass die Seite nur aufgerufen werden kann, wenn man sich mit einem auf dem Server vorhandenen Konto anmeldet? Blicke da mit vererbten Berechtigungen usw. nicht durch.
0

Anzeige



#2 Mitglied ist offline   SchroederX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 586
  • Beigetreten: 20. Oktober 05
  • Reputation: 10
  • Geschlecht:Männlich
  • Wohnort:NRW

geschrieben 06. April 2010 - 17:56

Mir wurde inzwischen gesagt, dass der Code wohl .Net2.0-compliant sei und die Beschränkung beim 2008er Server liegt.

Hat jemand eine Idee, wie ich mein Vorhaben realisieren kann?
0

#3 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 07. April 2010 - 11:11

Das einzige was mir auffällt ist, dass du zwei verschiedene Pfade erwähnst.
In Quelltext steht "~/bin", in deiner Beschreibung schreibst du "/bin-Ordner". Das sind zwei verschiedene Pfade.

Daher, liegt deine Bat-Datei überhaupt dort wo sie liegen soll?
0

#4 Mitglied ist offline   SchroederX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 586
  • Beigetreten: 20. Oktober 05
  • Reputation: 10
  • Geschlecht:Männlich
  • Wohnort:NRW

geschrieben 07. April 2010 - 11:38

Damit habe ich denselben Ordner gemeint.

Die Batch-Dateien liegen schon am richtigen Ort, denn auf 2003 funktionierts wunderbar, ich kann die Batches auch umbenenennen und bekomme beim Aufruf eine entsprechende Fehlermeldung. Auf 2008 passiert nix.
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 07. April 2010 - 13:18

Doch noch was gefunden, schau mal ob dir das weiterhilft: http://support.micro...om/kb/555134/de

Ach...aber die maschinelle Übersetzung ist grauenhaft!
0

#6 Mitglied ist offline   SchroederX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 586
  • Beigetreten: 20. Oktober 05
  • Reputation: 10
  • Geschlecht:Männlich
  • Wohnort:NRW

geschrieben 15. April 2010 - 11:33

Ich lese im Technet meistens nicht die deutschen Übersetzungen :blush:

Nein, das wars nicht.

Weitere Vorschläge?
0

#7 Mitglied ist offline   SchroederX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 586
  • Beigetreten: 20. Oktober 05
  • Reputation: 10
  • Geschlecht:Männlich
  • Wohnort:NRW

geschrieben 15. April 2010 - 12:12

Ich habs jetzt mal so versucht:

Einen neuen AppPool anlegen, der nur für den Ordner gilt, in dem meine remote.aspx liegt. Dieser Pool wird als Administrator ausgeführt. Damit scheints zu funktionieren.

Gibt es damit Sicherheitsprobleme?
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0