프로젝트에서 클라이언트가 사용할 수 있도록 서버 쪽에서 Excel 및 Word을 자동화해야합니다. 샘플 코드 응용 프로그램에서 코드를 실행했는데 모두 제대로 작동하지만 WCF 서비스 내부에서 오류가 발생했습니다.WCF 서비스에서 Office 자동화를 사용하면 예외가 발생합니다
var wordApp = new Word.Application();
wordApp.Visible = true;
wordApp.Documents.Add();
wordApp.Selection.PasteSpecial(Link: true, DisplayAsIcon: true); //Throws exception
var _excelApp = new Excel.Application();
_excelApp.Visible = true;
_excelApp.Worksheets.Add(); //Throws exception
을 그리고 오류는 다음과 같습니다 :
내 코드는 다음과 같습니다
함께 System.Runtime.InteropServices.COMException이
에 의해 처리되지 않은했다 사용자 코드
헬프 = wdmain11.chm # 24822
메시지 = 지정한 데이터 형식을 사용할 수 없습니다. ,,
& DisplayAsIcon 객체, & 배치 개체, & 링크 객체 Microsoft.Office.Interop.Word.Selection.PasteSpecial에서
(객체 &
는 IconIndex :
소스 = 마이크로 소프트 워드
있는 ErrorCode = -2146822946
스택 트레이스 개체 & 데이터 유형 & IconFileName은 & IconLabel 개체 개체)에서 OfficeApiPlugin.UsingOfficeApiService.DisplyWorksheet
(WorksheetRow []
worksheetD System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke에서
(개체)
인스턴스 ATA) SyncInvokeDisplyWorksheet (물체
이 Object []이 Object []이 Object [] 입력은, 개체 [] & 출력) 시스템에서
.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc &
RPC)
System.Runtime.InteropServices.COMEx Microsoft.Office.Interop.Excel.ApplicationClass에서
: 0x800A03EC
자료 = Microsoft.Office.Interop.Excel ErrorCode가
=
-2146827284 스택 트레이스 : ception는 사용자
코드
메시지 HRESULT =로부터 처리되지 않은 예외였다 .get_Worksheets() OfficeApiPlugin.UsingOfficeApiService.DisplyWorksheet (WorksheetRow []
worksheetData) C에서에서
: \ 사용자 \ Mahdi7s 문서는 비주얼 스튜디오를 \ \ 2010
프로젝트 \ \ OfficeApiPlugin \ OfficeApiPlugin UsingOfficeApiService.cs \ 라인
(29)System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke에서
SyncInvokeDisplyWorksheet에서 92,268,103,210 (개체, 개체 []이 Object []) (개체
인스턴스를 개체 [] 입력은, 개체 [] & 출력)는 system.serviceModel에서
.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc &
RPC)
어떻게하면이 오류없이이 작업을 수행 할 수 있습니까?
어떻게 WCF 서비스를 호스팅합니까? – Dyppl
오류는 Word 및 Excel 응용 프로그램이 서버에 설치되어 있지 않음을 나타냅니다. BTW : 나는 항상 서버에서 ** COM interop을 사용하지 않으려 고합니다. OpenXML 인터페이스와 같은 다른 방법을 사용하여 서버에 Word 또는 Excel 문서를 만들려고하지 않고 ** 설치하지 않아도됩니다. Office on your server .... –
@Dyppl : wpf 응용 프로그램 내에서 내 서비스를 호스팅했습니다. – VirtualWorld