2011-09-23 7 views
2

Excel Interop 라이브러리를 사용하여 Excel 스프레드 시트를 읽고 삽입하는 간단한 웹 응용 프로그램이 있습니다. 나는 don't use two dots을 보장하고 모든 COM 개체 참조가 Marshal.ReleaseComObject()GC.Collect()을 사용하여 해제되도록 보장하기 위해 실사를하고 있지만 여전히 내 서버에서 EXCEL.EXE 프로세스가 실행 중입니다.ASP.NET과 호환되지 않는 Excel interop libraries는 무엇입니까?

ASP.NET 응용 프로그램과 동일한 개체 해제 프로세스를 사용하는 Windows Forms 응용 프로그램을 만들어 프로세스를 성공적으로 종료합니다. 간과 한 ASP.NET에서 Interop 라이브러리를 사용하는 것과 관련된 것이 있습니까?

EDIT : 어둠 속에서 촬영 한 것처럼 서버에서 특정 방식으로 권한을 설정해야 할 수 있습니다. 내 web.config 파일에 <identity impersonate="true"/>을 사용 중이며 서버의 로컬 관리자입니다.

답변

4

정확히이 답변을 모르겠지만 ASP.NET과 Excel Interop에서 많은 작업을했으며 내 관찰/포인터 중 일부를 제공 할 수 있습니다.

작업 관리자를 사용하는 경우 EXCEL.EXE 프로세스를 실행중인 사용자를 볼 수 있습니다. 이는 AppPool ID 일 가능성이 큽니다.

응용 프로그램 풀이 재활용 될 때의 경험으로 인해 Excel이 닫힙니다.

또한 스크립트를 다시 실행하면 두 번째 Excel이 열리고 닫힙니다.

xl.Quit(); 
Marshal.ReleaseComObject(xl); 
xl = null; 
GC.Collect(); 
: 참고로

, 여기에 내 닫기 엑셀 코드