jeg forsøger at køre et cgi script i iis til 2000 advanced server, og der sker bare ingenting!
Scriptet er i et ældre programmeringssprog (Moscow ML) som er compilet og lagt i en .exe fil, hvilket skulle gøre at det skulle virke.
Jeg kan tilsyneladende ikke se at der skal ændres noget i iis for at det skal køre (som det f.eks er tilfældet med perl eller php), så derfor er intet ændret.
det svar man får fra iis er at cgi scriptet opførte sig underligt da det ikke returnerede en rigtig http header, scriptet returnerede dette: (ingenting)
Jeg ved ikke meget om cgi, men jeg ved at hvis man bare køre scriptet uden noget så får man:
<html><body> <p> HER ER JEG!!! </p> </bode></html>
hvilket jo burde give noget i selv den ringeste browser.
altså finder iis scriptet, men kan ikke "bruge" det.
Hvis du har installeret IIS security lock down tool og valgt at den også skal installere urlscan, så har jeg selv oplevet at den spærer for at man kan køre cgi-scripts, se evt i IIS logfilen, der vil det stå hvis den har spærret for adgang til cgi.
Der er ikke spærret for noget. cgi-bin'en køre som den skal. faktisk så har jeg (ANER IKKE HVORDAN!) fået den til at køre script'ne når de bliver compilet til .exe filer, men målet er at få dem til at køre i deres oprindelige form, nemlig .sml filer.
app mappen er lavet, og skulle have de rigtige instrukser.
compileren hedder mosmlc, og skal have attributten -o for at compile til selvstændig .exe. altså hedder det app mappen:
mosmlc -o %s %s
det jeg så ikke forstår er hvordan iis håndtere app'en. syntaxen er:
mosmlc -0 udfil indfil
så det er sikkert kaldet som bliver forkert... der kommer ihvertfald cgi fejl og en 'did not return a complete set of headers' og intet bliver returneret af kaldet at mosmlc.
desuden så har script'ne problemer med at gå rundt i andre mapper. compiler jeg et script, så melder den tilbage at den fil som det skulle skrive til ikke kunne findes, selvom jeg er HELT sikker på stien.
Du skal i IIS huske at give det angivne site lov til at køre 'Scripts and Executables', i stedet for bare 'Scripts only'. Jeg har selv en Microsoft Windows 2000 Advanced Server stående på arbejdet, som også bruges til at afvikle binære CGI-filer og dette virker upåklageligt.
Det som er underligt er at hvis jeg vælger at anonyme ikke skal have adgang til serveren, og lader windows tjekke koder, så vil den gerne skrive. Det er som om at den anonyme bruger ikke har adgang til at give cgi scriptet lov til at skrive til filer... normale binære cgi-scripts som bare skal returnere en html side kører som de skal.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.