2013-11-07 13 views
0

Я получаю эту ошибку в журналах ошибок в Syncfusion excel file download. Это случается несколько раз в день каждый день, но я никогда не получаю эту ошибку самостоятельно. Файл существует на сервере, и он отлично работает в большинстве случаев, что очень затрудняет отладку. Веб-сайт находится в .Net 4 на IIS и DLL с синхронизацией, ссылаются на GAC. Версия Syncfusion - 8.303.0.21. Любая идея по потенциальной причине будет оценена по достоинству.Ошибка: System.IO.FileNotFoundException: Файл не найден

Код.

Private XlsIO As ExcelEngine 
Private XlsWorkbook As IWorkbook 
Dim str As String = Server.MapPath("Downloads/ExcelSpeedGen/excelfile.xls") 
XlsIO = New ExcelEngine 
XlsWorkbook = XlsIO.Excel.Workbooks.Open(str) 
XlsRSheet = XlsWorkbook.Worksheets("raw data") 
XlsRSheet.ImportDataTable(datatable, False, 2, 1, True) 
XlsWorkbook.SaveAs("Excel.xls", ExcelSaveType.SaveAsXLS, Response, Syncfusion.XlsIO.ExcelDownloadType.PromptDialog) 
XlsWorkbook.Close() 

Ошибка.

System.Web.HttpException (0x80004005): Exception of type 'System.Web.HttpException' was 
    thrown. --->    System.Web.HttpUnhandledException (0x80004005): Exception of type 
    'System.Web.HttpUnhandledException' was thrown. ---> System.IO.FileNotFoundException: File 
    D:\inetpub\Secure\mywebsite\Downloads\ExcelSpeedGen\excelfile.xls could not be found. Please 
    verify the file path. at Syncfusion.XlsIO.Implementation.Collections.WorkbooksCollection.Open 
    (String fileName, ExcelOpenType openType, ExcelVersion version, ExcelParseOptions options) at 
    Syncfusion.XlsIO.Implementation.Collections.WorkbooksCollection.Open(String filename) at 
    Default.form1_Load(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) 
    at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean 
    includeStagesAfterAsyncPoint) at System.Web.UI.Page.HandleError(Exception e) at 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean 
    includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, 
    Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at 
    System.Web.Util.AspCompatApplicationStep.System.Web.HttpApplication.IExecutionStep.Execute() at 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at 
    System.Web.HttpAsyncResult.End() at ASP.ideasplusbaseline_aspx.EndProcessRequest(IAsyncResult ar) at 
    System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) 

ответ

0

Вы можете попытаться открыть файл (excelfile.xls) в потоке и передавать поток в XlsIO и если все та же проблема воспроизведения в XlsIO затем разделить образец, он будет лучше сортировать точную причину это исключение. Разделил фрагмент кода для вашей справки.

Dim str As String = Server.MapPath("Downloads/ExcelSpeedGen/excelfile.xls") 
Dim fileAsStream As FileStream = New FileStream(str, FileMode.Open, FileAccess.Read, FileShare.Read) 
XlsIO = New ExcelEngine 
XlsWorkbook = XlsIO.Excel.Workbooks.Open(fileAsStream) 

Спасибо, Sathish

Смежные вопросы