When you install IIS6, it removes read/execute permission for the
IUSR_XXXX user from lots of places. 

 

You could create a separate site or virtual folder and have it run under
a different user id. Be sure you understand the security ramifications
of this however.

 

From: activeperl-boun...@listserv.activestate.com
[mailto:activeperl-boun...@listserv.activestate.com] On Behalf Of Justin
Allegakoen
Sent: Monday, January 12, 2009 7:39 PM
To: activeperl@listserv.activestate.com
Subject: Re: Win32::OLE problem

 

                2009/1/11 Dorian Winterfeld <dor...@uaqa.com>

                Hi,

                 

                I have a Web based Win32::OLE script that uses Excel on
the server side.  It has been working happily for years on a Win2000
server running Excel2000.  We recently upgraded to Win2003/Excel2003 and
I now get the following error from the script:

                 

                Win32::OLE(0.1709) error 0x80070005: "Access is denied"
at create_worksheet_lib.plx line 637
                 eval {...} called at create_worksheet_lib.plx line 637

                 

                line 637 is: 
                $Excel = Win32::OLE->new('Excel.Application', 'Quit') or
return 0;

                 

                This appears to be a permissions problem as nothing has
changed in the script.  Any Windows gurus out there that might be able
to help trouble shoot this?

                
                
                Sounds as if the IIS limited access web account and its
settings in Win2K3 are preventing you from creating the Excel file in
the desired server side directory.
                
                Write the file to a shared drive where Everyone has
Write perms. You will of course have to evaluate the security risks this
may present to your setup.
                
                Cheers,
                Just in

                
                
                <http://listserv.ActiveState.com/mailman/mysubs> 

Offline you wrote:-

2009/1/13 Dorian Winterfeld <dor...@uaqa.com>

Thanks Justin, I did try setting the output folder to
everyone/full-control but that didn't do it.  It seems that in this case
"Access is denied" because Win32::OLE doesn't have access to Excel.
It's failing when it tries to create a new OLE Excel object.  At least
that is what I think.  I set the Excel permissions to
everyone/full-control as well but that  didn't do it either.  So I am
stuck for now.....

 

- Dorian  



My apologies. I did this years ago and have only just had my memory
jolted. Calling Win32::OLE on a server from a client if you think about
it is a serious security threat (think about getting macros to execute
server side). I do remember writing ASPs on Win2K with IIS 5 and then
migrating to Win2K3 with a whole load of problems because the newer IIS
(6) was locked down a lot more. My guess is IIS 5 allowed calling of
Win32::OLE whereas IIS6 doesnt.

I was able to overcome IIS6 by using the Spreadsheet::WriteExcel and
SpreadSheel::ReadExcel modules. These modules will require installation
on your web server, but they do run on *nix if thats any consolation.
The bad news is of course moving forward would mean a rewrite of your
script. Now theres a happy new year for you . . . 

Just in

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to