对互操作词进行故障排除

时间:2013-11-29 04:25:21

标签: c# office-interop com-interop

我需要在使用C#上传时阅读word文件和PDF文件的页面。我在网上搜索过并得到了一个方法。它只是在本地工作正常,但它不在服务器上工作。我搜索了问题。我得到了这个例外:

  

System.Runtime.InteropServices.COMException(0x80080005):由于以下错误,检索CLSID为{000209FF-0000-0000-C000-000000000046}的组件的COM类工厂失败:80080005服务器执行失败(来自HRESULT的异常: 0x80080005(CO_E_SERVER_EXEC_FAILURE))。          在System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)          在System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)          在System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType,Object [] props,Boolean bNewObj)          在System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck)          在System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark& stackMark)          在System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark& stackMark)          在System.Activator.CreateInstance(Type type,Boolean nonPublic)          在System.Activator.CreateInstance(类型类型)

我也找到了它的解决方案,它基本上与服务器上的权限相关。

我设置了所有权限但仍然抛出相同的异常。我找不到任何方法来解决这个问题。

我正在使用以下代码:

 var application = new Application();
 var document = application.Documents.Open(path);
 var numberOfPages = document.ComputeStatistics(WdStatistic.wdStatisticPages, false);

 result = numberOfPages;
 object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
 object originalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdOriginalDocumentFormat;
 object routeDocument = false;
 document.Close(ref saveOption, ref originalFormat, ref routeDocument);

 application.Quit();
 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(application);

这是我在Dot Net项目中使用Com组件的DLL(Mvc 4.0)

  

汇编Microsoft.Office.Interop.Word.dll,v12.0.0.0

我在我的本地计算机上安装了MS Office 2007,但服务器有2013年的Ms办公室。它可能是与错误相关的东西。

0 个答案:

没有答案