2016-09-25 9 views
0

ASP.net (C#)을 사용하여 웹 응용 프로그램을 작성하고 있습니다. 내가 읽고 싶은 서버에 하나의 엑셀 파일이있다. 이 코드를 사용하여이 Excel 파일을 읽으려고하면 예외가 발생합니다. 나는 엑셀 파일이 저장된 특정 폴더에 대한 서버상의 사용자 (IIS 사용자)에게 완전한 권리를 제공했다.C#을 사용하여 ASP.net에서 파일을 읽는 동안 액세스가 거부되었습니다.

읽기 논리 :

Excel.Application xlApp = null; 
Excel.Workbook xlWorkbook = null; 
Excel._Worksheet xlWorksheet = null; 
Excel.Range range = null; 

xlApp = new Excel.Application(); 
xlWorkbook = xlApp.Workbooks.Open("C:\inetpub\wwwroot\Uploads\data.xls); 
xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(sheetName); 
range = xlWorksheet.get_Range("A1", "B5"); 

예외 :

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).

날이 오류를 이해하는 데 도움시겠습니까?

답변

2

Office 자동화 is not supported from inside IIS 또는 코드가 사용자 세션 (예 : Windows 서비스) 외부에서 실행되는 기타 상황. 연결된 지식 기반에서 "서버 측 서버 자동화 사용 문제"절에서 "메시지 4"가 표시되는 것을 볼 수 있습니다.

.xls에서 .xlsx 파일로 전환하는 것이 가능한 경우 Microsoft's Open XML SDK 2.5 for Office을 사용하여 office 2007 및 최신 파일을 열고 조작 할 수 있습니다.

레거시 파일 형식을 사용해야하는 경우 .xls을 지원할 수있는 타사 라이브러리를 찾아야합니다.

관련 문제