Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由IIS运行时出现Word Interop未经授权的异常_C#_Asp.net_Iis_Ms Word - Fatal编程技术网

C# 由IIS运行时出现Word Interop未经授权的异常

C# 由IIS运行时出现Word Interop未经授权的异常,c#,asp.net,iis,ms-word,C#,Asp.net,Iis,Ms Word,我有一个相当严重的问题。我编写了一个应用程序,它使用Office.word.interop Microsoft.Office.interop.word.dll为客户进行程序化邮件合并。一切都很顺利。然后,客户希望从一个网站中获得相同的功能,一切都变得很糟糕。我在一个网站中包含了我的代码,所有内容都在调试模式下工作,但当我发布代码并在IIS下运行时,我不断收到错误: 正在检索具有CLSID的组件的COM类工厂 {000209FF-0000-0000-C000-0000000000 46}由于以下原

我有一个相当严重的问题。我编写了一个应用程序,它使用Office.word.interop Microsoft.Office.interop.word.dll为客户进行程序化邮件合并。一切都很顺利。然后,客户希望从一个网站中获得相同的功能,一切都变得很糟糕。我在一个网站中包含了我的代码,所有内容都在调试模式下工作,但当我发布代码并在IIS下运行时,我不断收到错误:

正在检索具有CLSID的组件的COM类工厂 {000209FF-0000-0000-C000-0000000000 46}由于以下原因失败 错误:80070005

当我在谷歌上搜索这篇文章时,我不断得到使用组件服务更改安全设置以包含IIS用户的建议。在我2003年的服务器上,我给了几乎所有人几乎所有的权限,但没有得到任何结果。在我的Windows7框中,如果没有“控制注册表项”,我甚至无法编辑安全性。这似乎不值得研究


还有希望吗?

我不相信Office是线程安全的,甚至不允许在web服务器上使用-即使您一次让它为一个用户工作,我怀疑一旦您将它扩展到多个并发用户,您是否会获得无故障操作


在Microsoft Office pack上检查您的EULA,您可能会发现它未获得此用途的许可,或者明确不支持此用途。有一些用于服务器端文档合成的商业.net库,我建议您使用其中一个专门构建的库,而不是尝试执行Office Interop,因为在任何情况下都非常缓慢。

不要在服务器上使用Office Interop。这是个坏主意。我试过了,让你很头疼。微软说如果你不相信我。相反,找一个好的单词库。我试过了,效果还不错。从ASP.NET或其他服务器技术使用Office互操作是一个可怕的想法。这些API是为在桌面应用程序中使用而编写的,用于自动化Office一套桌面应用程序。服务器应用程序在许多方面都不同,因此在其中使用Office互操作是一个非常非常糟糕的主意。它也不受Microsoft支持,可能会违反您的Office许可证。您唯一的希望就是停止在服务器应用程序中使用Office互操作。如果你继续走这条路,你就注定要失败。