捕获“页面无法显示”错误,没有HTTP错误代码CGI Perl IIS6

时间:2014-03-19 17:36:54

标签: perl cgi iis-6 http-error

我在Windows平台上的IIS6服务器上运行了我的网页.pl(perl)文件。我的页面允许用户上传excel并在处理下载后显示具有相同文件的链接。该页面有90%的时间工作,在某些随机情况下,无法返回带有链接的页面,尽管我的代码按照我的日志文件到达代码中的那一点,并且我的输出文件可用。

AppPage.pl

use strict;
use CGI qw(:standard);
use CGI::Carp('fatalsToBrowser');
use Spreadsheet::ParseExcel::SaveParser;

print header();
print start_multipart_form();

if(param('Submit')){
  if(param('file_upl')){
    Display_File();
  }
}else{
  Display_Main();
}       

sub Display_Main(){
   print "Please upload file for processing";
   print filefield(-name=>"file_upl",-accept=>'application/vnd.ms-excel') ;
   print submit(-name=>"Submit");
}
sub Display_File{
   my $fh = upload('upload_file');
   if(!$fh){
     print "file too big". $cgi_error();
     exit 0;
   }else{
     open (OUTFILE, ">> $file_path") or die("Can't open/create $file_name".$!);
     binmode OUTFILE;

     while(<$fh>){
       print OUTFILE;
     }
     close OUTFILE;
   } 
   my $out_file = Read_Write_excel(); #Saves file in a folder on server
   print "Thank you. Dowload";
   print "<a href=file://///server/share/dir/$out_file>here</a>";
}
sub Read_Write_excel{
  my $out_file = 'C:\OUT_File.xls'
  my $parser = new Spreadsheet::ParseExcel::SaveParser;
  my $Book = $parser->Parse($file_path);  
  my $Sheet = $Book->worksheet('Data');
  my ($first_row,$last_row) = $Sheet->row_range();
  my $key_col = 0;
  my $id;
  for(my $row=1;$row<=$last_row;$row++){
    $id = $Sheet->get_cell($row,$key_col)->value();
    if($id){
      $col = $col++;
      $Sheet->AddCell($row,$col,'Id found');
    }
    else{
      $col = $col++;
      $Sheet->AddCell($row,$col,'Id Not found'); 
    }
  }
  $Book->SaveAs($out_file);
  return $out_file;

}

更新:这是我的基本代码的简化版本。请让我知道任何建议。

尝试调试选项: 1.检查IIS日志文件以查找HTTP错误代码或错误消息。什么都没找到。 2.在这种情况下,使用fiddler获取HTTP响应代码,即使页面出现故障,仍然只能看到200。 3.使用IIS服务器端的日志分析器来捕获http代码。也没有。

欣赏任何指示。

由于

0 个答案:

没有答案