gpt4 book ai didi

c# - COMException CreateInstance 发布失败

转载 作者:太空狗 更新时间:2023-10-29 21:53:06 28 4
gpt4 key购买 nike

我目前正在开发一个引用第三方 api dll 的 C# WebAPI 项目。该组件是我添加到 visual studio 项目中的简单 COM 引用。
Web API 在 Intranet 服务器 (IIS) 上发布,集成安全和用户模拟已打开,匿名身份验证已关闭。

在我本地机器上的 visual studio (2015) 中运行 web api 时,一切正常。

在我们的 IIS 服务器上运行已发布的 web api 时,一切正常,但是当我向使用第三方库的 Controller 操作发送请求时,我收到以下错误:

System.Runtime.InteropServices.COMException
Additional information:
CreateInstance failed.
at ThirdPartyLib.Connect()

第三方依赖项是使用他们的安装程序安装在服务器(以及我的开发机器)上的。这注册了一组 dll 并安装了随附的软件。我已经验证了正确的安装。事实上,使用相同 dll 的简单 winforms 应用程序工作得很好。

进程监视器显示 w3wp.exe 正在使用正确的 dll。

我不确定我错过了什么?
如果这是权利问题,我将如何解决?

最佳答案

您可以将应用程序池标识更改为具有更高权限的用户。

注意:您可以使用 ASP.NET 模拟,通过 Web 配置以特定身份运行整个应用程序,或使用代码以使用特定身份仅运行部分代码。例如我测试了 <identity impersonate="true" userName="r.aghaei" password="mypassword"/>获得文件系统权限并且它工作正常。只需注意 webconfig 或代码中的模拟,如果应用程序池用户有足够的权限允许模拟,就可以正常工作。有关如何使用模拟客栈配置或代码的更多信息,请参阅 this MSDN 知识库文章。

也不要忽视最小特权原则。

关于c# - COMException CreateInstance 发布失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532742/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com