Eri*_*ess 5 c# windows dcom ms-office
我开发了一个C#程序,它从SQL Server数据库中提取数据,然后生成包含数据的Word文档.我已将程序设置为在Windows Server 2003框上作为SSIS作业的一部分运行.该程序以用户SQLSVC运行,该用户没有管理权限.当我以SQLSVC身份登录并运行程序时,它会正确执行.但是,当程序作为SSIS作业自动运行时,它会冻结在以下代码行中
Microsoft.Office.Interop.Word.Application word =
new Microsoft.Office.Interop.Word.Application();
Run Code Online (Sandbox Code Playgroud)
当我强行终止进程时,会生成以下错误消息.
Error Message: System.Runtime.InteropServices.COMException (0x80080005):
Retrieving the COM class factory for component
with CLSID {000209FF-0000-0000-C000-000000000046}
failed due to the following error: 80080005.
at IepGlance.Program.CreateNewIepFiles(Dictionary`2
iepDictionary, EasyIepDataContext dbContext)
at IepGlance.Program.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)
据我所知,问题在于DCOM权限.我已经使用dcomcnfg将所有可能的DCOM权限添加到用户SQLSVC,但这没有帮助.还有其他可能的解决方案吗?
小智 7
运行程序"dcomcnfg -32".(如果在64位下运行,则无法找到单词和excel组件)转到"控制台根目录/组件服务/计算机/我的电脑/ DCOM配置/"查找Microsoft Word和Excel并选择属性.转到安全性并选择"配置权限"下的"自定义".(如果需要,您可能还想更改其他权限,但我不需要)添加"IIS_IUSRS"并将其命名为"完全控制".现在转到"身份"并选择"交互式用户".
| 归档时间: |
|
| 查看次数: |
16235 次 |
| 最近记录: |