C#学习教程:仅在尝试使用WordDocumentClass时在prod中获取对象引用错误合并页面上的数据。该程序在我的开发工作站上本地运行完美,但是当我将它部署到测试IIS服务器时,它在下面的第二行失败,给我一个对象引用错误。我之前遇到过一个问题,因为WordCom对象不在IIS服务器上,所以我将Word加载到服务器上并在DCom中设置权限并解决了这个问题。但是现在我在以wRange=.....开头的行中收到此错误。正如我所说,该程序在调试模式下完美运行。有任何想法吗?Microsoft.Office.Interop.Word.DocumentClassSystem.NullReferenceException:未将对象引用设置为对象的实例,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing);wRange=BaseDocument.Bookmarks.get_Item(refendOfDoc).Range;依次单击“开始”、“程序”、“管理工具”和“组件服务”。依次展开组件服务、计算机、我的电脑、DCOM配置,然后右键单击MicrosoftWord97–2003文档。选择属性。单击常规。设置身份验证级别以连接(无也可以)。单击身份。设置此用户。指定始终用于运行COM应用程序的用户帐户,无论哪个用户正在访问它。单击应用按钮。单击确定按钮。有关“为远程访问配置DCOM”的更多信息,请转至为远程访问配置DCOM如果您确实在服务器上安装了word,请检查运行IIS的用户帐户是否具有Microsoft.Office.Interop程序集的实际权限。安装在目标计算机上,请确保直接打开Word等应用程序,因为可能会有更多提示激活许可证。在您逐步完成该过程之前,API将无法运行,并且生成的错误将无法确定问题的真正原因。所以NullReferenceException可能是Word无法打开文档导致的,因此Word.Documents.Open()将返回null。老实说,我不是100%确定这是导致问题的原因-正如我所说,错误并不能准确地告诉您问题是什么。(我不久前遇到过这个问题,虽然我知道API会抛出异常,但我不记得它是否与您所看到的相同。)您的程序不会在调试模式下本地运行。你根本没有做错任何事。在任何情况下都不应在ASP.NET应用程序或任何其他服务器应用程序中使用任何办公自动化API。这些API旨在调用交互式桌面应用程序。他们所做的许多假设不适用于服务器应用程序。例如,桌面应用程序通过用户操作同步为Windows消息队列中的消息。ASP.NET应用程序中没有Windows消息队列,因此对共享数据的访问是不同步的。您的测试可能根本不会导致多个线程并发运行。对于给定COM组件的所有用户,数据可能只存在一个副本。这在桌面应用程序中运行良好,因为只有一个用户。您的ASP.NET应用程序有许多用户同时执行代码。违反了另一个假设。所有这些都会产生几乎无法修复的细微错误。它们只能被移动,让你认为你已经解决了问题,直到你意识到还有另一个问题。这个循环永远不会结束,永远不会结束,因为您无法解决实际问题:问题是您正在使用来自服务器应用程序的OfficeAutomationAPI。解决这个问题,你将不再有这个错误。PS除非您的ASP.NET应用程序的所有用户都拥有Word应用程序的许可证,否则您可能违反了MicrosoftWord许可证。以上就是C#学习教程:仅当尝试使用WordDocumentClass获取prod中对象引用错误分享的全部内容,如果对大家有用还需要详细了解C#学习教程,希望大家付费更多关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
