IIS Express在调试ASP.NET MVC时给出“拒绝访问”错误


102

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

如何解决呢?

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

访问被拒绝。说明:访问服务于此请求所需的资源时发生错误。服务器可能未配置为访问请求的URL。

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


3
您是否在没有管理特权的情况下运行IISExpress?
chandmk 2012年

2
因此,在敲了一下我的头一段时间之后,我终于意识到这是因为VS尚未设置默认页面,而且IISExpress.exe显然没有提供文件夹列表来使这一点变得显而易见。
马克·艾伦

Answers:


113

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


2
这并非特定于Visual Studio 2012,也可以至少在Visual Studio 2010上进行。
卢瓦克Lopes的

5
2013年为我工作在VS
kaybee99

2
您还需要禁用匿名身份验证。
2015年

1
在解决方案资源管理器中,单击解决方案节点下的项目名称,然后切换到“属性”窗口,在那里您可以看到属性“ Windows身份验证”将其设置为“已启用”
sairfan

1
我在属性窗口的任何地方都看不到此设置。我使用VS 2015
马克Bonafe

99

如果有此问题的原因是IIS Express不允许Windows身份验证。可以通过设置启用

<windowsAuthentication enabled="true">

在位于C:\ Users [用户名] \ Documents \ IISExpress \ config的applicationhost.config文件中。


19
Visual Studio 2010和2012可以为每个项目为您添加此设置,以使全局设置不会更改其默认设置,请参阅stackoverflow.com/a/7168308/23566
Robert Claypool,2013年

我正在尝试该设置,因为在VS 2013中也偶尔会出现此错误,让我们看看是否有帮助,让您知道。
马特

2
如果使用%userprofile%\ documents \ iisexpress \ config \ applicationhost.config,效果更好。我的位置在D :(感谢Dan!danesparza.net/2014/09/…
Jeramy Rutley

这是唯一为我工作的解决方案,非常感谢!
Mohammad Anini

在VS 2017中对此进行了尝试,但无法正常工作。Jason发布的解决方案确实有效。
myroslav '18年

73

我使用了杰森(Jason)的答案,但想阐明如何进入房地产。

  1. 在解决方案资源管理器中选择项目

在此处输入图片说明

  1. F4 进入属性(与右键单击属性不同)
  2. Windows身份验证更改为已启用

在此处输入图片说明


3
非常感谢您对此进行说明并指定需要更改的是F4属性。
PeterDNCO

1
谢谢!我还必须将“匿名身份验证”设置为“启用”。
Mahesh

1
太谢谢你了!
FunMatters

1
你很美丽。
kosherjellyfish

1
我正在使用VS 2015,这不存在!
Mark Bonafe

18

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


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

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


1
我遵循了您的步骤,但仍然不适合我。如果从VS2010打开它工作得很好,什么在VS 2013的问题
GANI

@ user1016740我不确定,因为要解决此问题的方法/路径过多。我在这里描述的步骤在我认为与您的环境不同的环境中解决了该问题。
Leniel Maccaferri 2014年

8

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

netsh http show urlacl

要删除此保留,我在提升的控制台中运行了此保留:

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

我发现这些步骤在这里解决我的问题。

我正在使用VS2013


如果您曾经编辑过applicationhost.config以便一次在多个端口上运行一个站点,这将非常方便。从.config中删除条目不会删除netsh中的任何保留。谢啦。
Dusda 2014年


3

我也遇到了同样的问题,最终我可以克服它。

Solution Explorer→交通Right click on project→交通Properties→交通Web tab→交通Project Url

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


1

以上都不对我有用。这在今天之前一直为我工作。然后,我意识到我一直在用笔记本电脑创建托管连接,并与“无线网络连接”共享了Internet连接。

解决我的问题:

转到控制面板>网络和Internet>网络连接

右键单击您可能拥有的任何辅助无线网络连接(我的无线网络连接名为“无线网络连接2”),然后单击“属性”。

转到顶部的“共享”标签。

取消选中“允许其他网络用户通过此计算机的Internet连接进行连接”复选框。

点击确定>然后应用。

希望这可以帮助!


1

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

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

和我的网站出现了,但是有关于身份验证的问题。


好的,它有助于解决问题,但现在我还有其他一些问题需要解决。
Jamshaid Kamran

0

我只是通过将应用程序主机.config编辑到特定于以下位置的位置部分中的IIS EXPRESS中解决了此确切问题。我已经在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>

0

我一直在尝试使用提供者托管为SharePoint创建一个简单的应用程序时遇到这个问题。

通过applicationhost.config之后,在该部分中,basicAuthentication设置为false。在我的场景中,我将其更改为true以超过401.2。关于如何为IIS Express查找applicationhost.config,还有许多其他链接。


0

我在任何地方都没有看到这个“完整”的答案。发布此消息后,我刚刚看到了有关更改端口号的内容,所以。

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

我正在寻找“为什么”,但是我的首要想法是,IIS和Visual Studio的IIS Express在创建虚拟目录时都使用相同的目录,而Visual Studio只能创建新的虚拟目录而不能修改IIS在将其绑定到站点时创建的任何内容。

随时纠正我的原因。


0

我们的错误页面在登录页面后面,但是登录页面中的一个控件存在错误,这会导致无限循环。

我们从有问题的页面中删除了所有控件,并将它们一一添加回去,直到找到并修复了正确的控件。


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.