Discipulus has asked for the wisdom of the Perl Monks concerning the following question:

kind monks

I know I'm a little bit off topic but I'm in a fix.
I'm migrating my programs from an iis5 to a 6 version and I have rialized that the mapping for my CGI programs as usually done (c:\perl\Perl.exe "%s" %s) is not working any more.

a CGI runs if I map to PerlIs.dll but I'm very unsactisfacted for his results: I cannot call external command (open, system, etc) so the glue-side of our loved language is off.

Putting the mapping to ol'one Perl.exe "%s" %s and allowing the server extension (Perl CGI extensions) is resulting on a not authorized access even if I put on the root and on the Perl dir an everyone full control (for testing purpose..)

Similary if I put a script tag in an ASP file it runs but witout opening filehandle et similia..
Every advice is welcome

Lor*

Replies are listed 'Best First'.
Re: Big trouble with Perl on IIS6
by BrowserUk (Patriarch) on Sep 03, 2007 at 11:32 UTC

    You need to (re-)authorise your IIS user account (USR_<machine-name>) to have appropriate authorities for the operations and on those parts of the filesystem you want it to access.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      thanks for your reply. I have this code and I have re-authorised in this way: I have set in IIS mmc in the properties-> security -> authentication for anonymous to the administrator (for testing purpose)
      #!perl use CGI qw /:standard -nph/; $|++; $POST_MAX=100; $DISABLE_UPLOAD=1; print header(); print start_html(-title=>'*modifica',-bgcolor=>"#000099",-text=>"#FF99 +33"); print start_form(-method=>'POST',-action=>url(-relative=>1),-name=>'fo +rm1'); ######## oOOOo #### print 'insert a little number '.url(-relative=>1).br; print textfield(-name=>'numero',-value=>""); print submit(-value=>' crea tabelline'); if (defined param('numero')){&tabell()} ########################################## sub tabell{ ############ "#000000" $x=param('numero'); for $uno(1..$x) { for $due(1..$x) {$array[$uno].=td($uno*$due)} } print table({-title=>'oOOOo',-bgcolor=>"#000000",-border=>1,-border +color=>"red",-width=>"80%", -cellspacing=>"0", -cellpadding=>"0"}, Tr({-align=>'CENTER'},[@array])); } ########################################## print end_html();

      ..and it still does'nt want to run giving a 403 error (no error on the server).

      Lor*

        I C&P'd your code to a page on my local webserver and it ran fine, so the problem remains with your authorisation.

        I don't understand your description of how you have tried to authorise your webserver account. I haven't seen or used IIS for 7 or 8 years, circa. v2 or 3?, but unless things have changed beyond recognition, what you describe doesn't look even vaguely correct.

        At this point your problem is not a perl problem at all, and I don't have the knowledge to help you with it. You either need to read the documentation, search the web, or ask your question somewhere there will be poeple who will know the answer.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Big trouble with Perl on IIS6
by Errto (Vicar) on Sep 03, 2007 at 16:49 UTC
    Either do what BrowserUk suggests or, if you find it easier, change your IIS configuration so that it runs under a different user account, one that has permissions on the files, commands etc that you need it to access.