c# - 在 C# 中搜索文档中的单词是错误的
问题描述
我编写了以下代码:在文档中搜索一个单词,该单词在控制台应用程序中没有问题,但在我单击按钮时在 ASP.NET 应用程序中不起作用:
using Microsoft.Office.Interop.Word;
Application objWordApp = new Application();
objWordApp.Visible = false;
object missing = System.Reflection.Missing.Value;
Document objDoc;
objDoc = objWordApp.Documents.Open(fileURL, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
object findText = "Tags";
objDoc.Content.Find.ClearFormatting();
try
{
if (objDoc.Content.Find.Execute(ref findText,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing))
{
Console.WriteLine("Text found: Name document - " + "'" + docTitle + "'");
}
objDoc.Close(ref missing, ref missing, ref missing);
objWordApp.Application.Quit(ref missing, ref missing, ref missing);
}
catch (Exception ex)
{
objDoc.Close(ref missing, ref missing, ref missing);
objWordApp.Application.Quit(ref missing, ref missing, ref missing);
throw ex;
}
}
catch (Exception ex)
{
test11.Text = ex.ToString();
}
System.UnauthorizedAccessException:由于以下错误,检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005 访问被拒绝。(HRESULT 例外:0x80070005 (E_ACCESSDENIED))。
我在论坛上查看了很多信息,按照文章中的内容进行了所有操作,没有任何帮助,错误没有消除。
1. DCOM 错误:检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005。
2.检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂
解决方案
你能试试这个吗
第1步:
参考此链接:Interop.Word Documents.Open 为空
如果您仍在寻找答案,我刚刚为我的项目找到了答案。
打开 DCOM 配置设置:
开始 -> dcomcnfg.exe
电脑
本地计算机
配置 DCOM
搜索 Microsoft Word 97-2003 Documents -> Properties Tab Identity,从 Launching User 更改为 Interactive User
第2步:
转到您的项目进行以下更改..
第三步:
转到IIS 服务器,将应用程序池(如下面的配置和映射)添加到您的站点或应用程序中。
推荐阅读
- java - 如何在没有代码的情况下获取 Settings.Secure.ANDROID_ID 值?
- flutter - 有没有办法循环一个 soundpool 音轨颤振包?
- javascript - 了解循环功能
- python - 泛型类型的 get_type_hints
- c# - 如何在不占用大量内存的情况下快速流式传输 gRPC (c#) 中的大型数组?
- kubernetes - 如果 etcd 停止工作,Kubernetes 会发生什么?
- c++ - 按值传递指针 - 在函数中分配内存
- mysql - CTE 中的相关子查询不同步
- docker - 如何使用 docker-compose 构建 Dockerfiles?
- autodesk-forge - 在 iPad 上加载大型模型