debuggingASP.NET MVC时,IIS Express会出现“访问被拒绝”错误

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

这怎么解决?

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

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

错误消息401.2 .:未经授权:login失败,由于服务器configuration。 validation您是否有权根据您提供的凭据以及Web服务器上启用的身份validation方法来查看此目录或页面。 联系Web服务器的pipe理员以获取更多帮助。

造成这个问题的原因是IIS Express不允许Windows身份validation。 这可以通过设置启用

<windowsAuthentication enabled="true"> 

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

如果您正在使用Visual Studio,还可以在解决scheme资源pipe理器中左键单击该项目,然后在“ 属性”窗口中将“ Windows身份validation”属性更改为“已启用 ”。

我用贾森的答案,但想澄清如何进入属性。

  1. 在Solution Explorer中select项目

在这里输入图像说明

  1. F4去属性(不同于右键属性)
  2. Windows身份validation更改为已启用

在这里输入图像说明

在IIS Express上托pipe:1.在解决scheme资源pipe理器中单击您的项目以select项目。 2.如果“属性”窗格未打开,请将其打开(F4)。 3.在项目的“属性”窗格中:a)将“匿名身份validation”设置为“已禁用”。 b)将“Windows身份validation”设置为“已启用”。

在我的情况下,我不得不打开文件:

 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

现在我可以按预期访问login页面。

我不得不在Administrative Mode运行Visual Studio来摆脱这个错误。

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

 netsh http show urlacl 

删除这个保留我在一个提升的控制台运行这个:

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

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

我正在使用VS2013

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

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

我select了另一个端口号 ,每件事都变好了!

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

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

我的网站出现了,但是有authentication的问题。

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

需要在下面添加windows auth标签,如图所示。

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

我一直在努力解决这个问题,试图使用Provider Hosted来创build一个简单的SharePoint应用程序。

通过applicationhost.config后,在该部分中,basicAuthentication设置为false。 在我的情况下,我把它改成了真的去过401.2。 还有很多其他链接如何findIIS Express的applicationhost.config。

以上都没有为我工作。 今天之前这一直在为我工作。 然后,我意识到我一直在我的笔记本电脑上创build一个托pipe连接,并与我的无线networking连接共享互联网连接。

要解决我的问题:

进入控制面板>networking和Internet>networking连接

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

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

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

点击确定>然后点击应用。

希望这可以帮助!

我没有在任何地方看到这个“完整的”答案。 我刚刚看到关于更改端口号的那个,我贴了这个,所以就这样。

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

我正在查找“为什么”,但是我的想法是我的头脑是IIS和Visual Studio的IIS Express在创build虚拟目录时使用相同的目录,而Visual Studio只能创build新的虚拟目录,并且不能修改当它将它绑定到网站时,IIS创build的任何内容。

随时纠正我为什么。

我们的错误页面是在login页面的后面,但是login页面在其中一个控件中有错误,从而创build了一个无限循环。

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