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

时间:2014-09-16 09:36:07

标签: c# iis asp.net-web-api basic-authentication

我用.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(在Visual Studio中调试)它再次运行良好。 使用邮递员,我发现我可以使用指定的用户名/密码访问该方法。

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

  

500 - 内部服务器错误。

     

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

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

2 个答案:

答案 0 :(得分:0)

确保您拥有&#34;基本身份验证&#34;为您的IIS服务器安装。

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

确保功能&#34; WWW-Service&#34; - &GT; &#34;安全&#34; - &GT; &#34;基本认证&#34;被选中。

或者,确保IIS用户具有您站点的文件夹/文件所需的权限。取决于您的网站所做的事情,&#34;阅读和执行&#34;可能就够了。

用于IIS7的用户是IIS_IUSRS。

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

答案 1 :(得分:-1)

已经解决了! 我发现<modules>内有两个<system.webServer>导致错误的原因