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”属性更改为“已启用 ”。
我用贾森的答案,但想澄清如何进入属性。
- 在Solution Explorer中select项目
- F4去属性(不同于右键属性)
- 将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 Explorer
→ Right click on project
→ Properties
→ Web tab
→ Project 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并修复了正确的控件。