1

私は 1 つの Web サイトを持っています (Excel を xml に変換します)。私のマシンで実行すると、すべて問題ありません。しかし、IISを介してWebサイトを実行すると. 問題があります:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

以下は私のコードです:

string filename = Server.MapPath("~/Uploads/" + Request.QueryString["Name"]);
    string[] sheet = _ReadExcel.getSheetNames(filename);
for (int i = 0; i < sheet.Length; i++)
        {

        }

例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私にいくつかの解決策を提案してください。ありがとう

4

3 に答える 3

0

sheet.length を呼び出す前に、シートをオブジェクトに設定する必要があります。

于 2013-03-18T03:17:35.813 に答える
0
 // Connect to Excel files
 System.Data.OleDb.OleDbConnection MyConnection ;
 System.Data.DataSet ds ;
 System.Data.OleDb.OleDbDataAdapter MyCommand ;
 MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\\18.xls';Extended Properties=Excel 8.0;");
 MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
 MyCommand.TableMappings.Add("Table", "Product");
 ds = new System.Data.DataSet();
 MyCommand.Fill(ds);
 MyConnection.Close();
 // Write to xml
 ds.WriteXml("Product.xml");

Generate Excel from XML および Generate XML from Excelへの参照

于 2013-03-18T03:53:38.563 に答える
0

filenameExcelファイルへのパスが正しいかどうかを確認する必要があります。

そのパスが正しい場合。NETWORK SERVICE アカウントに、読み書きしようとしているフォルダーへのアクセス許可を付与する必要があります。

メソッド内に何があるかわかりません_ReadExcel.getSheetNamesが、「ファイル名」入力に「null」値を返しています。Visual Studio で IIS プロセスをアタッチして、アプリケーションをデバッグする必要があります。次に、IIS で実行したときに問題を見つけることができます。

IIS でデバッグする手順:

  • デバッグ->プロセスにアタッチ...
  • リストから aspnet_wp.exe プロセスを選択します。
  • IIS > バージョン 5 を実行している場合、プロセスは w3wp.exe になり、アプリケーション プールごとに 1 つ存在します (そのため、どのアプリケーション プールをヒットしたかわからない場合は、それらすべてにアタッチする必要があります)。
于 2013-03-18T03:59:51.937 に答える