asp.net 互操作.Word文档.打开为空

x8diyxa7  于 2023-03-04  发布在  .NET
关注(0)|答案(7)|浏览(209)

我尝试打开.docx文件并使用Interop.Word.Application转换为PDF。它作为控制台应用程序工作,但如果我在我的Web应用程序中使用相同的,它不工作。我尝试查看文件夹上的权限。我给了“网络服务”完全控制,但我仍然得到对象引用没有设置在word.Documents.Open。你能让我知道什么可能的问题吗?我坚持这个错误。请让我知道。我感谢任何建议。谢谢。

Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();

    object oMissing = System.Reflection.Missing.Value;

    word.Visible = false;
    word.ScreenUpdating = false;
    string fileName = @"c:\OUTPUT\test.docx");
    Document doc = word.Documents.Open(filename, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing);
        doc.Activate();
xxls0lw8

xxls0lw81#

如果你还在寻找答案,我已经找到了它刚才为我的项目。
打开DCOM配置设置:
1.开始-〉x1月1x
1.计算机
1.本地计算机
1.配置DCOM
1.搜索Microsoft Word 97-2003 Documents-〉属性
标签Identity,从Launching User变更为Interactive User

rqmkfv5c

rqmkfv5c2#

试试这个,它可能对你有帮助。
在中创建新的“Desktop”目录

  • “C:\Windows\系统WOW64\配置\系统配置文件”
  • “C:\Windows\系统32\配置\系统配置文件”

在漫长的一天寻找解决方案后,它对我很有效。
好像是侧写的问题。

sdnqo3pr

sdnqo3pr3#

我做了以下步骤,它工作正常:

  • 创建desktop folder
  • 将DCOM元素更改为使用特定用户而不是启动/交互用户登录
  • 已更改服务,因此它以相同的特定用户身份启动
    **编辑于2019-09-29。**由于一个大的windows更新,我不得不重新做一遍确切的进度。
ou6hu8tu

ou6hu8tu4#

为了解决这个问题,我必须同时做两件事:

  • 创建目录:
  • C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft \Windows\INetCac‌he
  • C:\Windows\System32\config\systemprofile\Desktop
  • 启用DCOM设置as @gianni-b says

如果由于使用不同的语言而难以找到DCOM项,可以执行以下操作:
1.开始菜单〉regedit
1.导航到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{00020906-0000-0000-C000-000000000046}

  • 右键〉新建〉字符串值
  • 对于密钥,输入RunAs
  • 对于值,输入Interactive User

您可以在AppID {00020812-0000-0000-C000-000000000046}上对Excel执行相同的操作。

yiytaume

yiytaume6#

正如Paulie在他对OP的评论中所说,我认为这个问题主要是因为Web服务器上的库,你可能可以通过黑客攻击让它在Web应用程序上工作,但我建议不要这样做。
编辑:啊,我误读了这篇文章,以为是Excel。这是大多数人在使用Office时所追求的。)
有一个开放库可以处理DocX格式(enter link description here)。* 不幸的是 * 他在页面上承认,如果没有Office,转换到PDF这样的格式几乎是不可能的。互操作库(http://cathalscorner.blogspot.com/2009/10/converting-docx-into-doc-pdf-html.html
Here是一个“有前途的”替代品,但YMMV。

u4dcyp6a

u4dcyp6a7#

很有可能你的web服务器上有一个不同的word dll,也许是一个旧的,我建议你引用一个特定的dll并将其复制到web服务器上,这样你就可以确定你使用的是和你测试代码时使用的是同一个word dll,并且你知道它能工作,使用interop时可能会有一些问题,然而,word interop是唯一一个你可以确信会最正确地转换word文件的程序。

相关问题