I built WCF solution about reporting by using MS-Word 2003 API(Microsoft.Office.Interop.Word) but I got this error :
2010-09-17 16:31:39,218 [21] ERROR ERROR [(null)] - Error : Generate 0900000a80395799
System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.MoveNext()
at FactoryService.Generator.Generate(Task& task, IDfSession& mySession)
at FactoryService.Generator.Generate(Object t)
2010-09-17 16:31:49,578 [22] ERROR ERROR [(null)] - Error generator timeout 0900000a80395799
2010-09-17 16:31:49,812 [14] ERROR ERROR [(null)] - Error : Generate 0900000a80395799
System.Runtime.InteropServices.COMException (0x800706BF): The remote procedure call failed and did not execute. (Exception from HRESULT: 0x800706BF)
at Microsoft.Office.Interop.Word.ApplicationClass.get_Documents()
at FactoryService.Generator.Generate(Task& task, IDfSession& mySession)
at FactoryService.Generator.Generate(Object t)
2010-09-17 16:31:50,046 [18] ERROR ERROR [(null)] - Error : Generate 0900000a80395799
System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
at Microsoft.Office.Interop.Word.ApplicationClass.get_Documents()
at FactoryService.Generator.Generate(Task& task, IDfSession& mySession)
at FactoryService.Generator.Generate(Object t)
2010-09-17 16:31:50,968 [22] ERROR ERROR [(null)] - Error generator timeout 0900000a80395799
2010-09-17 16:31:50,984 [10] ERROR ERROR [(null)] - Error : Generate 0900000a80395799
System.Runtime.InteropServices.COMException (0x800706BE): The remote procedure call failed. (Exception from HRESULT: 0x800706BE)
at Microsoft.Office.Interop.Word.Documents.Open(Object& FileName, Object& ConfirmConversions, Object& ReadOnly, Object& AddToRecentFiles, Object& PasswordDocument, Object& PasswordTemplate, Object& Revert, Object& WritePasswordDocument, Object& WritePasswordTemplate, Object& Format, Object& Encoding, Object& Visible, Object& OpenAndRepair, Object& DocumentDirection, Object& NoEncodingDialog, Object& XMLTransform)
at FactoryService.Generator.Generate(Task& task, IDfSession& mySession)
at FactoryService.Generator.Generate(Object t)
I don't know why this API call RPC Service and Does it support Word2003 concurrent generating in on web server
Thanks in advance
Word automation in server side (without UI) is not supported, and leads to very strange problems. You better use the OpenXml libraries for creating word documents.
Use of any of the Office products from a service of any kind is unsupported, may violate your license, and worse, just plain doesn't work properly. These are desktop applications, and were written with the assumption that they are being used by a single person, at a desktop computer. Run them in a server, and you violate a large number of assumptions.
We had the same problem, and then we switched to generating word documents in xml (Word Processing ML). It turned out very well.
But, as an alternative you could probably get away by creating a windows service (not web service). Windows service with proper rights would probably be able to use Word process.
You also need to check DCOM settings on server: ControlPanel -> ComponentServices -> Computers -> MyComputer -> DCOM Config -> Microsoft Office Word
... then open properties and check the Security and Identity used to run Word.
If there's further problems (as there probably will be with interop) there's further help to be found regarding the registry CLASSID etc, but wait 'till you get there (we didn't move to xslt's for generating word xml without a reason :) ).
User contributions licensed under CC BY-SA 3.0