尝试使用IIS从Perl打开Excel文件时出错

我正在运行一个Perl脚本文件从C#应用程序使用IIS,我想打开一个已经存在的Excel文件,我打开它使用下面的行:

$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Excel";//upto this working fine $book = $ex->Workbooks->Open($fileName); //this line only giving error 

现在我正在打开错误,如下所示:

来自“Microsoft Office Excel”的OLEexception:

Microsoft Office Excel无法访问文件“C:\ GWATS \ Report \ Nov-17-2014_10-06-36 \ GES-11n_IOT_10-06-37.xls”。 有几个可能的原因:

?文件名或path不存在。

•该文件正在被另一个程序使用。

?试图保存的工作簿与当前打开的工作簿具有相同的名称。

Win32 :: OLE(0.1711)错误0x800a03ec中的方法/ PROPERTYGET“打开”在C:\ GWATS \ Lib \ System \ Report.pm行611。

该文件肯定存在,我证实了这一点。

当我直接在cmd中运行时,这个脚本也正常工作。 这里有什么问题,我认为问题是与IIS,但我可以find究竟是什么问题?

尝试下面的perl脚本。 如果还存在一些错误,请告诉我:

码:

  use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit'); my $filename = 'C:\GWATS\Report\Nov-17-2014_10-06-36\GES-11n_IOT_10-06-37.xls' my $book = $Excel->Workbooks->Open($filename); 

打开Windows资源pipe理器

根据您是否安装了32位或64位版本的Office,您将需要执行以下一项(或两项):

32位Office安装:导航到C:\ Windows \ System32 \ config \ systemprofile

64位Office安装:导航到C:\ Windows \ SysWOW64 \ config \ systemprofile

validation文件夹“桌面”存在(创build它,如果它不存在)

右键单击>属性

在安全选项卡上:使用默认权限(读取和执行;列出文件夹内容;读取)添加运行站点的帐户(例如:DefaultAppPool)