I am creating an excel report using data coming from mssql server in my asp.net application. Here is my method:
[WebMethod]
public static string ExportToExcel(string sourcetype)
{
    Microsoft.Office.Interop.Excel.Application oXL;
    Microsoft.Office.Interop.Excel._Workbook oWB;
    Microsoft.Office.Interop.Excel._Worksheet oSheet;
    Microsoft.Office.Interop.Excel.Range oRng;
    try
    {
        oXL = new Microsoft.Office.Interop.Excel.Application();
        oXL.Visible = false;
        oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
        oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
        List<ExcelReport> dataToExport = APIClient.GetExcelReportData(Utility.getCurrentFilterId(), sourcetype);
        oSheet.Cells[1, 1] = "Source";
        oSheet.Cells[1, 2] = "UserName";
        oSheet.Cells[1, 3] = "Name";
        oSheet.Cells[1, 4] = "Message";
        oSheet.Cells[1, 5] = "Title";
        //oSheet.Cells[1, 6] = "Date";
        int activeRow = 2;
        for (int i = 0; i < dataToExport.Count; i++)
        {
            oSheet.Cells[activeRow, 1] = dataToExport[i].Source;
            oSheet.Cells[activeRow, 2] = dataToExport[i].UserName;
            oSheet.Cells[activeRow, 3] = dataToExport[i].Name;
            oSheet.Cells[activeRow, 4] = dataToExport[i].Message;
            oSheet.Cells[activeRow, 5] = dataToExport[i].MessageTitle;
            //oSheet.Cells[activeRow, 6] = dataToExport[i].EntityDate;
            activeRow++;
        }
        oSheet.get_Range("A1", "Z1").Font.Bold = true;
        oSheet.get_Range("A1", "Z1").VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
        oRng = oSheet.get_Range("A1", "Z1");
        oRng.EntireColumn.AutoFit();
        oXL.Visible = false;
        oXL.UserControl = false;
        string strFile = "report" + System.DateTime.Now.Ticks.ToString() + ".xls";
        string strCurrentDir = HttpContext.Current.Server.MapPath(".") + "\\ExcelReports\\";
        oWB.SaveAs(strCurrentDir + strFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, null, null, false,
            false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, false, false, null, null, null);
        //oWB.SaveCopyAs(strCurrentDir + strFile);
        oWB.Close(null, null, null);
        oXL.Workbooks.Close();
        oXL.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oRng);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oWB);
        oSheet = null;
        oWB = null;
        oXL = null;
        GC.Collect();  // force final cleanup!
        //errLabel.Text = "<A href=http://" + strMachineName + "/ExcelGen/" + strFile + ">Download Report</a>";
        //string result = "<a href=\"~/ExcelReports/" + strFile + ">Raporu İndir</a>";
        string result = "ExcelReports/" + strFile;
        return result;
    }
    catch (Exception theException)
    {
        String errorMessage;
        errorMessage = "Error: ";
        errorMessage = String.Concat(errorMessage, theException.Message);
        errorMessage = String.Concat(errorMessage, " Line: ");
        errorMessage = String.Concat(errorMessage, theException.Source);
        return errorMessage;
    }
}
It works fine in my machine and at the server that application published to when I opened the source code in vs 2010 and press F5. But if I try to access my application using the browser through IIS, I'm getting HRESULT: 0x800A03EC error.
I tried the following command:
appcmd set config -section:asp -enableParentPaths:true
I tried to give write permissions to my folder.
I tried to change my MS Excel application settings from Component Services.
But no way! I could not get it working. Do you have any idea? Am I doing a mistake in configuration?
Thanks in advance,
 
     
     
     
    