COMException CreateInstance在发布时失败

Bar*_*art 6 c# visual-studio asp.net-web-api

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

在我的本地机器上运行visual studio(2015)中的web api时,一切都运行良好.

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

System.Runtime.InteropServices.COMException
其他信息:
CreateInstance失败.
在ThirdPartyLib.Connect()

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

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

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

Rez*_*aei 2

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

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

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