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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有基本身份验证的Web Api在IIS中出现500内部错误相关的知识,希望对你有一定的参考价值。

我用.Net创建了一个Web Api。在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(在Visual Studio中调试)它再次运行良好。使用Postman,我看到我可以使用指定的用户名/密码访问该方法。

但是,当我把它放在IIS服务器上时,我收到500内部服务器错误:

500内部服务器错误。

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

我必须在某处配置IIS才能实现此目的,或者这是另一个原因吗?

答案

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

按照以下步骤,按照以下步骤操作,了解如何管理服务器上IIS的安装功能:http://technet.microsoft.com/en-us/library/cc771209.aspx

确保选择“WWW-Service” - >“Security” - >“Basic Authentication”功能。

或者,确保IIS用户具有您站点的文件夹/文件所需的权限。根据您网站的功能,“阅读和执行”就足够了。

用于IIS7的用户是IIS_IUSRS。

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

另一答案

已经解决了!我发现在<modules>里面有两个<system.webServer>导致错误

以上是关于具有基本身份验证的Web Api在IIS中出现500内部错误的主要内容,如果未能解决你的问题,请参考以下文章

具有 Windows 身份验证的 IIS 7.5 Web 应用程序是不是要求最终用户具有文件权限?

使用具有不同 AuthenticationProviders 的多个 WebSecurityConfigurerAdapter(API 的基本身份验证和 Web 应用的 LDAP)

用于 WEB API 调用的 ASP.NET 默认凭据

IIS 上 asp.net mvc Intranet Web 应用程序的基本身份验证与 Windows 身份验证

将 HTTPS 绑定添加到 IIS 后,具有 Windows 身份验证的 WCF SOAP Web 服务停止工作

IIS 身份验证