Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Umfangreiche Formulare in einer Windows 2003 IIS 6.0 - Intranet-Umgebung nicht verarbeitbar

Frage Internet Server

Mitglied: jubu66

jubu66 (Level 1) - Jetzt verbinden

06.03.2008 um 09:15 Uhr, 2574 Aufrufe

Hallali,

dieser Beitrag befand sich unter der Rubrik "Perl".
Ich habe ihn in die Rubrik "Webserver" verschoben, da es primär kein Perl-, sondern ein Webserverproblem ist.

Das Perl-Skript als solches ist korrekt und unter anderer Umgebung auch lauffähig. Ohnehin dient das dargestellte Perl-Skript lediglich als Basis für die eigentliche Problembeschreibung.

Vielen Dank für das Verständnis

Grüße

JuBu



Nun aber zum eigentlichen Beitrag:



Hallali,

Dieses Forum habe ich bereits weitestgehend durchsucht und nichts Vergleichbares bzgl. meines Problems gefunden (was nicht bedeuten muss, dass nicht irgendwo bereits eine Lösung beschrieben ist). In diesem Fall bitte ich vielmals um Entschuldigung und wäre dankbar um den entsprechenden Link zum entsprechenden Beitrag.


Habe ein größeres Problem mit umfangreichen Formularen in einer Windows2003 IIS-Intranet-Umgebung.
Seltsam ist, dass das geschilderte Problem mit einem IIS 4.0 zusammen mit Windows NT nicht auftritt.

Würde mich freuen, wenn irgendjemand einen Tipp zur Behebung des Problems hätte.


Im Einsatz ist ein Windows Server 2003 (Microsoft Windows [Version 5.2.3790]) Hauptspeicher 4 GB
Microsoft Internet Information Server 6.0
ActiveStatePerl v5.6.1 built for MSWin32-x86-multi-thread Binary build 633 provided by ActiveState Corp. http://www.ActiveState.com Built 21:33:05 Jun 17 2002



Hier die genaue Problembeschreibung:
Wenn an den MIIS6 (Microsoft Internet Information Server Version6) Server Formularwerte übergeben werden (so wie nachfolgend dargestellt)
01.
<form name="form1" method="post" action="env3.pl">  
02.
.  
03.
.  
04.
.  
05.
<input type="submit" name="Submit" value="Anzeigen"> 
dann funktioniert dies bei Formularen, die wenig umfangreich sind.

Sobald jedoch das Formular zu viele Formularfelder enthält bzw. der Inhalt der Formularwerte zu umfangreich wird, hängt sich das empfangende Skript auf.
Ein Beispiel für ein empfangendes Skript:
01.
#!/usr/bin/perl -w 
02.
 
03.
use strict; 
04.
use warnings; 
05.
$|=1; 
06.
 
07.
print "Content-type:text/html\n\n"; 
08.
 
09.
foreach my $var (sort keys %ENV) { 
10.
   print $var . "=" . $ENV{$var} . "<br>\n"; 
11.
} 
Wird im empfangenden Skript lediglich (als Beispiel) "Hallo Welt" angezeigt, dann funktioniert die Sache (also: Es wird "Hallo Welt" angezeigt).
01.
#!/usr/bin/perl -w 
02.
 
03.
use strict; 
04.
use warnings; 
05.
$|=1; 
06.
 
07.
print "Content-type:text/html\n\n"; 
08.
print 'hallo welt'; 
Evtl. existiert irgendwo eine Einstellmöglichkeit, welches entweder den Umfang der zu übergebenden Formularwerte begrenzt bzw. welches den Umfang der empfangbaren Werte eines Perl-Skriptes regelt.

Nachfolgend ein Beispiel für ein umfangreiches (wenn auch wenig sinnvolles) Testformular:
01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
02.
<html>  
03.
<head>  
04.
<title>TEST</title>  
05.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
06.
<link href="/xyz/xyz.css" rel="stylesheet" type="text/css">  
07.
</head>  
08.
 
09.
<body bgcolor="#FFFFFF">  
10.
<form name="form1" method="post" action="env3.pl">  
11.
  <p class="HAUPTUEBERSCHRIFT"><font face="Arial, Helvetica, sans-serif"><strong>Test</strong></font></p>  
12.
  <table width="350" border="0" cellspacing="0" cellpadding="5">  
13.
    <tr>  
14.
      <td colspan="3" class="tabletextueberschrift">Auswahl</td>  
15.
      <td class="tabletextueberschrift"><div align="right"></div></td>  
16.
    </tr>  
17.
    <tr class="text">  
18.
      <td valign="bottom" class="textfett">&nbsp;</td>  
19.
      <td class="text">&nbsp;</td>  
20.
      <td valign="bottom" class="text"><input type="text" name="textfield"></td>  
21.
      <td valign="bottom" class="text">&nbsp;</td>  
22.
    </tr>  
23.
    <tr class="text">  
24.
      <td valign="bottom" class="textfett">&nbsp;</td>  
25.
      <td class="text">&nbsp;</td>  
26.
      <td valign="bottom" class="text"><input type="text" name="textfield2"></td>  
27.
      <td valign="bottom" class="text">&nbsp;</td>  
28.
.  
29.
.  
30.
.  
31.
    <tr class="text">  
32.
      <td valign="bottom" class="textfett">&nbsp;</td>  
33.
      <td class="text">&nbsp;</td>  
34.
      <td valign="bottom" class="text"><input type="text" name="textfield203"></td>  
35.
      <td valign="bottom" class="text">&nbsp;</td>  
36.
    </tr>  
37.
    <tr class="text">  
38.
      <td width="23" valign="bottom" class="textfett">&nbsp;</td>  
39.
      <td class="text"><input type="submit" name="Submit" value="suchen"></td>  
40.
      <td valign="bottom" class="text"> <div align="left">  
41.
          <input type="reset" name="Submit2" value="Zur&uuml;cksetzen">  
42.
        </div></td>  
43.
      <td valign="bottom" class="text"> <div align="right"></div></td>  
44.
    </tr>  
45.
  </table>  
46.
</form>  
47.
   
48.
  </body>  
49.
</html> 
Dieses Formular ist absolut "sauberer" HTML-Code, so dass Fehler, die durch unsauberen Code möglicherweise erzeugt werden könnten auszuschließen sind.
Es werden 204 Formularwerte textfield, textfield1, textfield2, ... textfield203 zur Verfügung gestellt.

Dieses Formular ruft die env3.pl auf. Es ist zwar überflüssig innerhalb des Per-Skriptes die übergebenen Formularwerte mit "my" zu deklarieren. Trotzdem, um wirklich alles auszuschließen, was zu irgendwelchen Problemen führen könnte, habe ich diese Deklaration vorgenommen.
01.
#!/usr/bin/perl -w 
02.
03.
# env3.pl 
04.
05.
use strict; 
06.
use warnings; 
07.
$| = 1;  
08.
my $textfield=0; 
09.
my $textfield1=0; 
10.
my $textfield2=0;  
11.
.  
12.
.  
13.
14.
my $textfield203=0; 
15.
 
16.
my $A_NR_POSITION = 0; 
17.
 
18.
my $Submit = 'suchen'; 
19.
my $Submit2= 'zurücksetzen'; 
20.
 
21.
 
22.
print "Content-type:text/html\n\n"; 
23.
 
24.
foreach my $var (keys %ENV) 
25.
26.
 $A_NR_POSITION = $A_NR_POSITION + 1; 
27.
 print 'Position '.$A_NR_POSITION.'|Var='.$var.'|'.$ENV{$var}."<br>\n"; 
28.
 } 
Auch die env3.pl ist (meine Meinung) "sauberer" Code.
Sämtliche Variablen werden deklariert. Trotzdem "läuft" das Skript nicht durch, sondern muss gekillt werden. Nachdem das Skript gekillt wurde, sieht man, wie weit es tatsächlich "lief".
Nämlich bis zu Position 35.

Werden statt 204 Formularwerte "nur" z. B. 150 Formularwerte übergeben, dann "läuft" das Skript durch.

Es sieht tendenziell nach einem Speicherplatzproblem aus. Letztlich würde dies bedeuten, dass pro Perl-Skript/Prozess "nur" soundsoviel Bytes zur Verfügung gestellt werden. Möglicherweise kann dieser Wert irgendwo im IIS oder in Windows 2003 manipuliert werden.... evtl. auch irgendwo in Perl (???).

Setze ich in das env3.pl-Skript folgende BegrenzungsWerte ein, "läuft" die Sache bis Position 36.
01.
use CGI qw/:standard/; 
02.
$CGI::POST_MAX = 4096 * 100;    # maximal 100K Postings 
03.
$CGI::DISABLE_UPLOADS = 1;      # keine Uploads 
Weitere Werteerhöhungen (z. B.: von 4096 auf 8192) haben keinen Effekt.
Ähnliche Inhalte
PHP
Intranet über php Windows Server 2003 und IIS
gelöst Frage von MarcysPHP2 Kommentare

Hallo Zusammen, in der Firma haben wir eine übliche Windows Domäne unter anderem WindSrv2003 wo der IIS drauf läuft. ...

Windows Server
IIS 6.0 und Domänenanmeldung
Frage von slanskyWindows Server

Hallo Leute, ich habe eine Frage, aber erst die Umgebung: Domäne mit 3 DCs Windows Server 2008 R2 und ...

Server
Intranet in IIS einrichten
gelöst Frage von ParaneusServer12 Kommentare

Guten Morgen liebe Admins Ich möchte einen Web-Server soll so konfigurieren, dass Clients mit dem URL www.redrose.loc auf die ...

Exchange Server
IIS 6.0 SMTP-Server als Relay für Exchange
Frage von Turbo-MasterExchange Server2 Kommentare

Hallo Leute, wir verwenden den SMTP-Server des IIS 6.0 als Relay für unseren Exchange-Server und haben folgendes Problem: Wenn ...

Neue Wissensbeiträge
Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 StundeSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 23 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet21 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement12 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...