2009-05-31 4 views
1

Excel 웹 서비스에서 SpreatSheetML을 XLS로 변환하는 데 Excel을 사용하고 있습니다. 또한 사용자가 올바른 확인란을 선택하면 Excel을 사용하여 스프레드 시트를 인쇄하는 스레드가 생성됩니다.ASP.NET 웹 서비스에서 처음 인쇄 할 때 Excel이 응답하지 않는다

최근에 우리는 새로운 환경에서 응용 프로그램을 배포 한 다음 문제가 발생하기 시작했습니다. 처음으로 누군가가 인쇄하려고하면 Excel이 서버에 멈춘 것처럼 보입니다. 즉 통합 문서의 PrintOut 메서드를 호출하지 마십시오. 보고.

그러나 응용 프로그램 풀 ID로 서버에 로그인하여 Excel을 열고 프린터로 보내고 다시 닫으면 인쇄가 계속됩니다!

엑셀이 invisible dialog 인 것으로 의심됩니다. 증상은 이전과 같았습니다. 엑셀이 열렸을 때 나타나는 "개체 연결 및 포함을 사용할 수 없습니다"- 다이얼로그에서 스톨 한 것으로 보입니다.

저는 서버 측 Office 자동화를 사용하는 것이 좋지 않지만, 변경하기가 어려운 레거시 응용 프로그램이라는 것을 알고 있습니다. 따라서 솔루션을 다시 디자인 해달라고 조언하지 마십시오.

이런 종류의 행동에 경험이있는 사람이 있습니까?

답변

1

글쎄, 아무도이 문제를 갖고있는 것 같다 소유하고 있습니다.

정말 이상한 것은 내 야간 작업 (일반 .NET .exe)이 완벽하게 인쇄 할 수 있다는 것입니다.이 문제가있는 것은 내 웹 서비스뿐입니다.

나는 이전에해야 할 일을하여이 문제를 해결했습니다 : Topshelf으로 간단한 Windows 서비스를 만들었습니다. 일부 Windows Server 2003 서비스에 일부 MSMQ 메시지에 응답하고 인쇄를 수행하고 웹 서비스에서 인쇄물을 주문할 수 있습니다. 메세지 큐.

모든면에서 훨씬 좋네요!

0

은 xls 또는 xlsx 통합 문서를 읽을 수 있으며 대화 상자를 표시하지 않고 기본 프린터로 인쇄 할 수 있습니다 (WorkbookView.Print() 메서드 참조).

here 평가판을 다운로드 할 수 있습니다.

면책 조항 : 나는하는 SpreadsheetGear LLC

-2

많은 사람들처럼, 이 표시됩니다. 이는 서버, 특히 다중 스레드 ASP.NET 응용 프로그램에서 Office API를 사용하기 때문에 발생합니다.

그러나, 당신은 발에서 자신을 쏘지 않는 것에 대해 알고 싶지 않다고 말했으므로, 말할 것도 없습니다. 당신은 일찍이 어리 석음의 결과에 갇혀있는 것 같습니다.

남자에 StackOverflow에 대한 질문을 :이 하나 들었어요 경우


OK, 저를 중지합니다. 그는 "서비스 내부에서 Office 응용 프로그램을 자동화하면 문제가 발생합니다"라고 말합니다. John Saunders는 이렇게 말합니다. "Office 응용 프로그램을 서비스 내부에서 자동화하지 마십시오. Microsoft에서 의도 한대로 데스크톱 응용 프로그램 내부에서 자동화하십시오."

Excel이 필요한 항목에 대한 요청이 들어올 때 Windows Forms 응용 프로그램을 실행하는 프로세스를 만들어야합니다. 응용 프로그램을 창없이 시작해야하거나 의 컨텍스트에서 시작해야 할 수 있습니다 Remote Desktop 연결 어떤 경우에도 수행 할 작업이 명령 줄 매개 변수로 전달되거나 프로그램이 WCF 서비스를 호스팅하여 명령을 보낼 수 있습니다.

이 프로그램은 Excel에서 예상하는 것처럼 Excel을 호출 할 수 있습니다. Excel (한 번에 하나씩)에 하나 이상의 명령을 처리 할 수도 있지만 중단되면 프로세스가 종료되고 다른 프로세스가 시작될 수 있습니다.

나는 이것을 시도한 적이 없지만 Office Automation이 의도하지 않은 작업을 수행하는 것보다 효과가있는 것처럼 들립니다.

+0

나는 우리가 스스로를 발로 쏘아 올린 것을 알고 있으며, 나는 최선의 회복 방법을 묻고있다. 나는 단지 "사무 자동화를 사용하지 말라."와 같은 대답을 사용할 수 없다는 것을 의미했다. 건설적인 대답을 요구합니다. – mookid8000

+0

당신은 옛날 Henny Youngman의 농담을 들었습니다. 한 남자가 의사에게 간다. 의사는 "의사가 이걸 할 때 아파요."라고 의사가 말합니다. 당신은 발에 총격을 당하고, 가루 화상과 총알 구멍을 피하는 방법을 묻지 만, 총을 내려 놓지는 않을 것입니다. –

1

웹 서비스의 interop을 통해 Microsoft Excel, Word 및 PowerPoint를 사용하여 Office 문서를 PDF 형식으로 인쇄 할 때 문제가 발생했습니다 (성능 저하, 중단 프로세스, 충돌 프로세스 등). 나도 보이지 않는 대화 상자로 인해 의심되는 문제에 직면 해 있습니다 (파일이 손상되거나 읽기 전용 권장 설정, 파일이 암호로 보호 된 상태 등).

Office를 사용하지 않는 도구가 있지만 매우 비쌉니다. 내 솔루션은 OpenOffice 자동화로 전환하는 것이 었습니다. OpenOffice는 훨씬 안정적으로 보이며, 매달린 프로세스 등을 뒤에 남겨 두었습니다.

"Microsoft Office를 자동화하지 마십시오"라고 말하지만, 자동화를 모두 포기할 것을 제안하는 것은 아닙니다. 방금 내가 더 많은 성공 Microsoft Office보다 OpenOffice 자동화했다.

+0

OpenOffice는 서버 환경에서 자동화되도록 설계되었을 가능성이 있습니다. Microsoft Office가 그렇지 않다는 것이 확실합니다. –

관련 문제