2011-01-06 26 views
1

Excelのデータリーダーを使用してExcelファイルからデータを読み取っています。Excel 2010パスへのアクセスが一時的に拒否されました

FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

http://exceldatareader.codeplex.com/

これはエクセル1997から2003のフォーマットを読み、私のローカルマシン上で2007形式を得意とし、我々は我々のテストサーバーに移動するとき。

生産に移動したときにしかし、それは、Excel 97-2003ファイルに対して動作しますが、私は次のエラーが表示2007のファイルの読み取りしようとすると:パス「Cへ

アクセス:\ DocumentsとSettings \ PORTALS03 \ ASPNET \ LOCALS〜1 \ Temp \ TMP_Z129388041687919815 'が拒否されました。

97-2003 Excelファイルを読み取ることはできますが、2007年のファイルアクセスが拒否される可能性はありますか?

答えて

1

ここでは、おそらくエクセルデータリーダーを閉鎖したり廃棄したりしていないと推測しています。

または、その一時ファイルを作成しているコードを正しく処理していない可能性があります。

ファイルの生成と読み取りに使用しているコードが表示されていないと、確かに言うことはできません。

0

私は、Excel Data Readerが読み込んだExcelファイルのTemp Filesを作成していることが分かりました。 エラーは、これらのTempファイルが格納されているディレクトリに与えられたアクセス許可がないのと同じです。 したがって、Excel Readerはその作業を行うことができません。

関連する問題