我创建了一个ASP.NET MVC 3项目,并且在开发时使用IIS Express作为Web服务器。当我尝试调试时,我收到以下错误消息。
如何解决这个问题?
>应用程序中的服务器错误。访问被拒绝。 描述:访问提供此请求所需的资源时发生错误。可能未配置服务器以访问请求的URL。
错误消息401.2。:未授权:由于服务器配置,登录失败。验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面。请与Web服务器的管理员联系以获取其他帮助。
答案 0 :(得分:109)
如果您使用的是Visual Studio,还可以在解决方案资源管理器中左键单击该项目,并将 Windows身份验证属性更改为已启用在属性窗口中。
答案 1 :(得分:99)
如果出现此问题,原因是IIS Express不允许WindowsAuthentication。这可以通过设置
启用<windowsAuthentication enabled="true">
位于C:\ Users [用户名] \ Documents \ IISExpress \ config的applicationhost.config文件中的。
答案 2 :(得分:62)
答案 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
文件丢失。它出现在解决方案资源管理器中并带有感叹号。我更换了它,错误消失了。