2009-12-04 7 views
0

나는 꽤 단순한 웹 양식을 가지고있어 사용자가 CSV 대신 예쁜 형식으로 xls에서 원하는 보고서 하나를 선택할 수 있습니다. Excel 2007에서 COM INTEROP을 사용하여 보고서를 작성했습니다. 로컬 시스템에서 작동하고 파일을 작성할 수 있지만 웹 서버에서이 오류와 함께 실패합니다.Excel Com Interop ASP.Net 파일을 디스크에 쓸 수 없습니다. 권한?

Microsoft Office Excel에서 열 수 없거나 더 이상 저장할 수 없습니다. 메모리 또는 디스크 공간이 충분하지 않기 때문에 문서를 볼 수 없습니다.

• 더 많은 메모리를 사용하려면 더 이상 필요없는 통합 문서 나 프로그램을 닫습니다.

• 디스크 공간을 비우려면 더 이상 필요하지 않은 파일을 저장하려는 디스크에서 삭제하십시오.

서버에 디스크 공간이 너무 많아서 생각하지 않습니다. 사용 권한 문제 일 수 있습니까? ASPNET 및 NETWORK SERVICE 계정을 확대하고 보고서를 저장하는 폴더에 대한 쓰기 및 수정 액세스 권한을 부여했지만 기쁨은 없습니다. 어떤 아이디어?

특정 사용자 계정으로 com 개체를 호출하거나 interop 호출을 관리자 계정으로 올릴 필요가 있습니까? 어떤 생각을 어떻게 할 것인가?

+0

그래, 웹 형태로 COM interop에 알고는 불쾌한 생각한다 - 우리가 더 나은 솔루션을 얻을 때까지 해결의가, 어떤 도움이 감사합니다! – Gareth

답변

1

죄송합니다.

Serge 당신은 중간에 있습니다. 관리자 권한으로 Excel을 실행 한 결과 :

구성 요소 서비스에서 Excel 응용 프로그램을 선택하고이를 실행하는 사용자로 관리자를 선택하십시오. 사용하는 주 동안 괜찮은 것 같습니다 :)

감사합니다!

+0

예 Excel에서 호출자의 프로세스가 만료됩니다. 이전에 구성 요소 서비스 (Dcomcnfg라고 함)가 계정을 설정하는 유일한 방법입니다. 필요한 경우 엑셀은 해당 계정에 대해 별도의 WinStation을 시작합니다. 모든 환경과 경로도 해당 계정에서 파생됩니다. – stephbu

1

을 사용하면 xls 및 xlsx 통합 문서를 IWorkbook.SaveToStream을 사용하여 응답 스트림에 직접 저장할 수 있습니다. 그것은 모두 안전한 관리 C# 코드이므로 admin으로 아무것도 실행할 필요가 없으며 Excel COM Interop이 ASP.NET 서버에 가져 오는 문제가 발생하지 않습니다.

SpreadsheetGear here을 사용하여 간단한 ASP.NET Excel보고 샘플 (C# 및 VB)을 확인하고 무료 시험판 here을 다운로드 할 수 있습니다.

면책 조항 : 나는 자신이 소유하는 SpreadsheetGear LLC