在IIS中部署后,Web API访问被拒绝错误

问题描述:

我有一个使用Excel相关DLL的MVC Web API应用程序Microsoft.Office.Interop.Excel当我从VS 2013运行应用程序时,它运行在IIS Express下,我可以通过RestClient成功发送Post请求但是当我将这个应用程序部署到IIS时,在发送Post请求之后,它给了我下面的错误。在IIS中部署后,Web API访问被拒绝错误

Unexpected Error occured while serving your RequestSystem.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).

我在我的机器中拥有管理员权限,并且我已赋予包含该代码的文件夹的所有权限。我还添加了用户IUSR,并授予对具有我的代码的文件夹的所有访问权限。

+0

您使用的是哪个IIS版本?你有没有检查该应用程序运行为IUSR? – JanneP

+0

@JanneP:IIS版本是10,操作系统是Windows 10. 我不知道如何检查应用是否运行为_IUSR_。你可以请分享一样的过程。 –

+1

检查IIS管理器中的应用程序池标识:应用程序池 - > [YouAppPool] - >高级设置。有关应用程序池标识的很好的MS文章可以在这里找到:https://www.iis.net/learn/manage/configuring-security/application-pool-identities – JanneP

读通过JanneP共享应用程序池的身份证明文件后,我从ApplicationPoolIdentity更改应用程序池标识本地系统现在的问题得到了解决,我的应用程序IIS下可以正常使用。 enter image description here