2016-03-30 3 views
0

xlsxをcsvに変換する簡単な手順があります。IISからasp.net(C#)経由でExcelからCSVに変換する

public static void ConvertExcelToCsv(string source, string destination, int sheetNumber = 1) 
{ 

    if (File.Exists(destination)) File.Delete(destination); 

    Excel.Application xl = new Excel.Application(); 

    xl.DisplayAlerts = false; 
    Excel.Workbook workbook = xl.Workbooks.Open(source); 
    // workbook.Close(true); 
    workbook.SaveAs(destination, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV); 
    object misValue = System.Reflection.Missing.Value; 

    if (workbook != null) 
    { 
     workbook.Close(false, Type.Missing, Type.Missing); 
     xl.Workbooks.Close(); 
     Marshal.ReleaseComObject(workbook); 
    } 


    xl.Quit(); 
    GC.Collect(); 
    Marshal.FinalReleaseComObject(xl); 
} 

ローカルマシンとローカルIISですべて正常に動作します。しかし、Webサーバーにアップロードした後は動作しないようです。それがしていることはすべて約3分を処理してからタイムアウトすることです。

コンポーネント

Services -> Computers -> My Computer -> DCOM Config -> Microsoft Excel Application -> IIS_IUSRS

で私はまた、許可されたアクセス権とも作成デスクトップフォルダ

C:\Windows\SysWOW64\config\systemprofile\

もそう今

:-) 32bit版では、私が持っていますいいえ、なぜそれは動作しません。あなたはこれと似た経験をしているのですか、何をすべきか、いくつかのヒントを教えてください。

+1

が参照するパスに適切な権限を持っていることを確認してください。 WebサーバーにはExcelがインストールされていないことがよくあります。たとえそうであっても、ファイル変換のための完全なExcelプログラムを実行することは、パフォーマンスにとっては不便です。 –

答えて

0

正確なエラーは何ですか?特定のエラーについては、IISログとアプリケーションイベントログを確認してください。

カップルのためにチェックするためのもの:

  1. ことを確認してください32ビットアプリケーションを有効にし、あなたのアプリケーションプール
  2. のためにTrueに設定されているあなたのWebサーバー上のExcelをインストールしていない場合は、コピーする必要がありますサイトを公開する際のInteropアセンブリこれを行うには、Interopへの参照のためにLocalをTrueにコピーを設定します。
  3. は、あなたのアプリがこのコードは実際にあなたが見ることができない窓のプライベートデスクトップ」上でExcelを実行して動作sourcedestination
+0

はい、私はそのWebサーバーにオフィス2013を持っていて、エラーメッセージは私にとって非常に変です: 2016-03-30 15:08:57 W3SVC5 C1W13622 15.57.47.152 POST /SecondForm.aspx - 84 - 15.87.165.14 Mozilla/5.0+(Windows + NT + 6.1; + WOW64)+ AppleWebKit/537.36 +(KHTML、+ like Gecko)+ Chrome/49.0.2623.87 + Safari/537.36 - http://c1w13622.itcs.hpicorp.net:84/ SecondForm.aspx 500 64 0 5361049 126176 – SmithiM

+0

私はVisual StudioからWebサーバー上のものを試してみると、すべて正常に動作します... – SmithiM

+0

私はIISのフィールドで非常に新しいですので、おそらくステップバイステップで:-) – SmithiM

関連する問題