Frage

Ich habe also eine Funktion:

   public static void ProcessWorkSheet(string fileName, string month, string year,
     string thread)
    {
        //version number location
        int version_row = 10;
        int version_column = 2;

        SeedsDBEntities db = new SeedsDBEntities();

        try
        {
            //Instance of Excel
            ExcelApp = new Microsoft.Office.Interop.Excel.Application();

            ExcelApp.Visible = true;

            ExcelApp.DisplayAlerts = false;

            WorkBook = ExcelApp.Workbooks.Open(@fileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
            (Microsoft.Office.Interop.Excel.Worksheet)WorkBook.Worksheets.get_Item(month);
                    .
                    .

            //the rest of the code
     }

Ich verwende Microsoft.Interop Library, um aus einem Excel -Blatt aus zu lesen und in einer Datenbank zu speichern. Das Problem hier ist, dass ich eine "Objektreferenz, die nicht auf eine Instanz eines Objekts festgelegt" erhalte, wenn der Code versucht, die Arbeitsmappe auf IIS 8 zu öffnen. Es funktioniert gut in Visual Studio 2010. Was könnte das Problem sein?

War es hilfreich?

Lösung

Ich musste IIS Benutzererlaubnis geben, die Anwendung zu verwenden. Erstellen Sie einen Ordner C: Windows Syswow64 config SystemProfile Desktop für 64-Bit-Systeme und setzen Sie die Berechtigungseinstellungen, um den IIS-Benutzer zu ermöglichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top