У меня возникли проблемы с сохранением таблицы Excel при работе на сервере, при работе на локальном компьютере она прекрасно работает!Microsoft.Office.Interop.Excel._Workbook.SaveAs() Исключение: 0x800A03EC
Неужели кто-нибудь когда-либо сталкивался с этим раньше или может указать мне в правильном направлении?
Пул приложений работает под идентификатором «LocalSystem».
Спасибо!
я получаю следующую ошибку/трассировки стека:
Error saving the excel sheet:
Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel._Workbook.SaveAs(Object Filename, Object FileFormat,
Object Password, Object WriteResPassword, Object ReadOnlyRecommended, Object
CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object
AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)
at MiFiveDayReport.ExportToExcel.SaveAs(String filepath, XlFileFormat type) in
G:\Development\MI Development\Technical Development\MIPortal\MIPortal\Old_App_Code\ExportToExcel.cs:line 411
Вот код, я использую, чтобы попытаться сохранить первенствовать документ:
try
{
if (log.IsInfoEnabled) log.Info("Saving...");
if (string.IsNullOrEmpty(filepath))
//Sets the filepath as the default
excelBook.SaveAs(this.filepath, type);
else
excelBook.SaveAs(filepath, type);
if (log.IsInfoEnabled) log.Info("Saved!");
success = true;
}
catch (Exception ex)
{
//SendEmail e = new SendEmail("Error saving excel sheet: " + ex.Message);
//SendEmail e1 = new SendEmail("Error saving excel sheet: " + ex.StackTrace);
if (log.IsErrorEnabled) log.Error("Error saving the excel sheet: "
+ ex.Message
+ ex.StackTrace);
throw;
}
Обновлено New Error:
Error creating excel application: Retrieving the COM class factory for component with
CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error:
80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). at System.RuntimeTypeHandle.CreateInstance(RuntimeType type,
Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at MiFiveDayReport.ExportToExcel..ctor(String filepath) in G:\Development\MI Development\Technical Development\MIPortal\MIPortal\Old_App_Code\ExportToExcel.cs:line 94
В следующей строке:
try
{
if (log.IsInfoEnabled) log.Info("Creating an excel application...");
excelApp = new Application();
if (log.IsInfoEnabled) log.Info("Excel application created");
}
catch (Exception ex)
{
if (log.IsErrorEnabled) log.Error("Error creating excel application: " + ex.Message + ex.StackTrace);
throw;
}
Это звучит как проблема с разрешениями. Убедитесь, что пользователь имеет права на папку, в которой вы пытаетесь сохранить документ Excel. – jfrankcarr
@jfrankcarr Вы имеете в виду пользователя, обращающегося к веб-сайту? – donpisci
Учетная запись пользователя IIS должна иметь разрешения на запись файла. См. Http://stackoverflow.com/questions/5729264/what-are-all-the-user-accounts-for-iis-asp-net-and-how-do-they-differ – jfrankcarr