이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 37223|회답: 1

[출처] 시험지를 생성하기 위해 단어를 가장하기.

[링크 복사]
게시됨 2016. 4. 8. 오후 4:44:24 | | |

최근에 온라인 논문 그룹 프로젝트를 진행했습니다. 주요 기능은 단어 조판, 미리보기, 시험지 생성을 지원합니다. 워드 운영을 시작할 때 떠오르는 한 가지는 워드를 조작하는 사무실 COM입니다. 전체 시스템 코드를 작성하는 데 약 2주가 걸렸습니다. 그 후 반복적으로 테스트를 시작했고, 지역에서 좋은 느낌을 받았으며, 단어 시험지를 원활하게 생성할 수 있었고 성과도 괜찮았습니다. 그래서 서버에 출시하는 게 너무 기다려졌어요.

첫 번째는 COM 팩토리에서 CLSID {000209FF-0000-0000-C000-0000000000046} 같은 구성 요소가 다음과 같은 오류로 인해 실패하는 경우입니다: 8000401a 구성 ID가 잘못되어 서버 프로세스를 시작할 수 없습니다. 사용자 이름과 비밀번호를 확인해 주세요. (HRESULT의 예외:0x8000401A).

우선, 이 모든 문제는 권한 때문에 발생하며, 해결책은 권한 설정뿐입니다. 엑셀과 워드뿐만 아니라 모든 오피스 제품에 유용합니다.

본론으로 들어가기 위해, 먼저 실행에 dcomcnfg를 입력하고, 컴포넌트 서비스 매니저->component service->my computer->DCOM->를 열어 해당 Microsoft Excel Applicotion/Microsoft Word 97-2003 문서를 찾아 해당 속성을 우클릭해 부팅 권한을 활성화하면 OK로 전환됩니다. -------- 문제없어요, 이 문제는 해결됐어요.



두 번째 상황인 "성능 문제"에 대해 이야기해 보겠습니다: 우리 시스템이 웹사이트의 다음 하위 시스템이기 때문입니다. 그래서 특정 사용자 기반이 존재합니다. 시스템이 시작되자마자 많은 사용자가 접속했습니다. 초기에는 하루에 400에서 500여 편의 논문이 묶였고, 점차 논문의 양이 점점 커졌으며, 이것이 시스템 문제의 시작이었습니다. 첫째, 이 과정에는 여러 winWord.exe 과정이 존재한다는 점입니다. 끝날 수 없어. 시스템 코드에는 Quit 프로세스를 포함하고 자원을 재활용하지만, 이 문제는 결코 해결되지 않습니다. 많은 수의 winword.exe 프로세스가 발생하면 서버가 느려집니다. 이 구성 요소에는 특히 메모리 소모가 많을 것입니다.

문제를 해결할 방법은 없습니다. 마지막 악수는 실행되지 않는 윈워드 프로세스를 종료시키는 타이밍 서비스를 작성한 것이었습니다. 이 방법은 증상을 치료하지만 근본 원인은 치료하지 않습니다. 、



여기서 말씀드리고 싶은 것은 Microsoft Office가 주로 일반 사용자를 위해 개발된 데스크톱 사무용 애플리케이션 소프트웨어이며, 풍부한 UI(사용자 인터페이스) 요소를 갖추고 있고, 순수 로컬 실행 소프트웨어 또는 클라이언트 소프트웨어 집합이라는 점입니다. 워드 자동화 인터페이스는 주로 윈도우 애플리케이션 호출을 용이하게 하도록 설계되었습니다. 예를 들어, Delphi, VB, C# Winform 등에서 개발한 네이티브 애플리케이션들이 있습니다. Visible을 거짓으로 강제로 만들고 Word가 서버 측 코드에서 실행될 수 있지만, 여전히 많은 까다로운 문제를 야기합니다.

1. ASP.NET B/S 아키텍처를 기반으로 합니다. B/S 아키텍처에서는 사용자 접근이 동시성이어서, N명의 사용자가 동시에 서버 페이지에 요청을 하는 경우가 많습니다. 이 경우 Word 자동화 호출이 때때로 중단되는 경우가 많습니다.

2. 숨겨진 인터페이스 동작 때문에, 윈도우 프로그램에서 성공적으로 호출할 수 있는 인터페이스를 포함하는 일부 인터페이스는 서버 측에서 호출에 실패하거나 심지어 크래시가 발생하여 종종 프로세스가 죽는 결과를 초래합니다.

3. 워드는 복잡한 데스크톱 프로그램이며 일반 웹 서비스 프로그램의 단순성과 효율성 기준을 충족하지 못하기 때문에 서버 측에서 실행이 느리고 많은 자원(CPU, 메모리)을 소모합니다. 특히 많은 사용자가 동시에 접근할 수 없어 자원이 빠르게 소진됩니다.

4. 대부분의 개발자는 COM 기술에 익숙하지 않으며, 워드 인터페이스를 프로그래밍하고 호출할 때 종종 코드 오류가 발생하고, 문제를 확인하기 어렵습니다. 이는 프로세스가 죽는 흔한 원인입니다. 워드 데드 프로세스는 서버 자원을 소모할 뿐만 아니라 서버 페이지가 새로운 워드 자동화 객체를 생성하지 못하고 계속 작동하지 못하게 하는 경우가 많습니다. 일부 네티즌들은 죽은 프로세스 해결책을 제안했는데, 이는 증상만 치료하지만 근본 원인을 해결하지 않는 Word의 죽은 프로세스를 제거하는 프로그램입니다. 죽은 프로세스는 사라졌지만, Word의 비정상적인 폐쇄로 인해 많은 자원이 제때 해제되지 못하게 됩니다. 이런 웹 서버가 얼마나 오래 지속될지는 알기 어렵습니다.



이 문제들을 해결하기 위해 철저한 연구와 비교 끝에 저자는 인터넷에 aspose.words라는 구성 요소가 있음을 발견했으며, 이는 위의 문제를 완전히 제거해 여러분과 공유하는 것을 권장합니다.



아래에서 aspose.words 컴포넌트의 운영 코드 일부를 공유하려 하는데, 도움이 필요한 분들께 도움이 되길 바랍니다





원본 링크: http://blog.csdn.net/fraing/article/details/8989736




이전의:[도움말] 웹사이트를 만들고 싶으시면, 다음 페이지의 소스 코드를 수정하는 데 html을 사용해 주세요. 도움을 요청하세요
다음:Aspose.Words로 PDF 문서를 생성하세요
게시됨 2020. 5. 3. 오전 9:07:08 |
좋은 글이에요, 도움이 됐어요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com