调试ASP.NET MVC时,IIS Express会出现“拒绝访问”错误

时间:2012-01-29 13:50:59

标签: asp.net-mvc debugging iis iis-express access-denied

我创建了一个ASP.NET MVC 3项目,并且在开发时使用IIS Express作为Web服务器。当我尝试调试时,我收到以下错误消息。

如何解决这个问题?

  应用程序中的服务器错误。

     

访问被拒绝。   描述:访问提供此请求所需的资源时发生错误。可能未配置服务器以访问请求的URL。

     

错误消息401.2。:未授权:由于服务器配置,登录失败。验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面。请与Web服务器的管理员联系以获取其他帮助。

14 个答案:

答案 0 :(得分:109)

如果您使用的是Visual Studio,还可以在解决方案资源管理器中左键单击该项目,并将 Windows身份验证属性更改为已启用属性窗口中。

答案 1 :(得分:99)

如果出现此问题,原因是IIS Express不允许WindowsAuthentication。这可以通过设置

启用
<windowsAuthentication enabled="true">
位于C:\ Users [用户名] \ Documents \ IISExpress \ config的applicationhost.config文件中的

答案 2 :(得分:62)

我使用了Jason的答案,但想澄清如何进入房产。

  1. 在解决方案资源管理器中选择项目
  2. enter image description here

    1. F4 获取属性(不同于右键单击 属性)
    2. Windows身份验证更改为已启用
    3. enter image description here

答案 3 :(得分:17)

在IIS Express上托管: 1.在解决方案资源管理器中单击您的项目以选择项目。 2.如果“属性”窗格未打开,请将其打开(F4)。 3.在项目的“属性”窗格中:    a)设置&#34;匿名认证&#34;到&#34;禁用&#34;。    b)设置&#34; Windows身份验证&#34;到&#34;启用&#34;。

答案 4 :(得分:12)

在我的情况下,我必须打开文件:

C:\...\Documents\IISExpress\config\applicationhost.config

我在文件中有这个:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

我刚刚删除了User=""部分。我真的不知道这件事是怎么到达的...... :)

注意:确保在applicationhost.config

的末尾有这样的内容
   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

您可能还想看看这里:https://stackoverflow.com/a/10041779/114029

现在我可以按预期访问登录页面了。

答案 5 :(得分:8)

在我的情况下,我之前从VS运行的应用程序保留了URL。我可以通过在控制台中运行来看到这一点:

netsh http show urlacl

要删除此预订,请在提升控制台中运行此操作:

netsh http delete urlacl http://127.0.0.1:10002/

我发现这些步骤here解决了我的问题。

我正在使用VS2013

答案 6 :(得分:5)

我必须在Administrative Mode中运行Visual Studio才能摆脱这个错误。

答案 7 :(得分:3)

我也有同样的问题,最后我可以克服它。

Solution Explorer Right click on project Properties Web tab Project Url

我选择了另一个端口号,一切都变好了!

答案 8 :(得分:1)

我打开了我的web.config文件,找到并删除了这一部分:

<authorization>
  <deny users="?" />
</authorization>

并且我的网站出现了,但是有认证的发行版..

答案 9 :(得分:0)

我刚刚修复了IIS EXPRESS中的这个确切问题,通过将应用程序主机.config编辑到下面特定的位置部分来修复它。我在Visual Studio 2012中设置了Windows身份验证,但是当我进入XML时,它看起来像这样。

需要在下方添加windows auth标记,如图所示。

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

答案 10 :(得分:0)

我一直在努力解决此问题,试图使用提供商托管创建一个简单的SharePoint应用程序。

在完成applicationhost.config之后,在该部分中,basicAuthentication设置为false。我将其更改为true以在我的方案中超过401.2。有很多其他链接可以找到IIS Express的applicationhost.config。

答案 11 :(得分:0)

我没有看到这个&#34;完成&#34;随处回答;我刚刚发布了这篇文章后,我刚刚看到了一个关于更改端口号的信息,所以我很好。

确保在visual studio中的项目属性中,项目URL未分配给IIS中用于任何站点绑定的相同URL或端口。

我正在查找&#34;为什么&#34;为此,但我的假设是,IIS和Visual Studio的IIS表达式在创建虚拟目录时都使用相同的目录,而Visual Studio只能创建新的虚拟目录,并且无法修改IIS创建的任何目录什么时候它应用它绑定到网站。

随时纠正我的原因。

答案 12 :(得分:0)

我们的错误页面位于登录页面后面,但登录页面在其中一个控件中出错,从而产生无限循环。

我们从违规页面中删除了所有控件,然后逐个添加它们,直到找到并修复了正确的控件。

答案 13 :(得分:0)

就我而言(ASP.NET MVC 4应用程序),Global.asax文件丢失。它出现在解决方案资源管理器中并带有感叹号。我更换了它,错误消失了。