具有基本身份验证的WebApi在IIS中出现500内部错误

本文关键字:错误 内部 IIS 身份验证 WebApi | 更新日期: 2023-09-27 18:21:58

我用.Net创建了一个WebApi。在localhost(Visual Studio)上,一切都运行良好。此外,当我在Windows Server 2008上的IIS 7上发布它时,它也能很好地工作。

现在我想保护一些方法。我创建了

public class BasicAuthHttpModule : IHttpModule

在web.config中,我将其配置为

<system.webServer>
    <modules>
        <add name="BasicAuthHttpModule" type="WebHostBasicAuth.Modules.BasicAuthHttpModule"/>
    </modules>    
</system.webServer>

我想保护的方法上面有[授权]。

在我的localhost(在VisualStudio中调试)上,它再次运行良好。使用Postman,我可以使用指定的用户名/密码访问该方法。

但当我把它放在IIS服务器上时,我会得到一个500内部服务器错误:

500–内部服务器错误。

您正在查找的资源有问题,无法显示

我必须在某个地方配置IIS才能实现这一点,还是有其他原因?

具有基本身份验证的WebApi在IIS中出现500内部错误

确保为IIS服务器安装了"基本身份验证"。

按照此处提供的步骤,按照有关如何管理服务器上为IIS安装的功能的步骤进行操作:http://technet.microsoft.com/en-us/library/cc771209.aspx

确保选择了"WWW服务"->"安全"->"基本身份验证"功能。

或者,请确保IIS用户对您站点的文件夹/文件具有所需的权限。根据你的网站所做的,"读取并执行"可能就足够了。

用于IIS7的用户是IIS_IUSRS。

有关IIS用户的其他信息,请访问此处:http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis

已经解决了!我发现<system.webServer>内部有两个<modules>,这导致了错误