MVC“访问被拒绝”使用IIS

严重麻烦超越“访问被拒绝”的消息:

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

我怎么到这儿来的

Windows 7,Professional下运行。 使用ADlogin系统的系统(名称:SYSTEM \ login)。 在VS2010中创build了一个名为XYZ的新MVC 3应用程序。 没有改变代码。 将System.Web.mvc和System.Web.Helpers的引用文件设置为Copy to Local = true。

我试图

  1. 将XYZ发布到文件系统位置“C:/ websites / XYZ”。
  2. 将“abc.xyz.com”添加到IPA 127.0.0.1的主机文件中。
  3. 在IISpipe理器中创build一个名为“XYZ”的新站点,并将物理path设置为应用程序发布path(C:/ websites / XYZ)。
  4. 将XYZ绑定到abc.xyz.com:80。
  5. 确保网站运行的应用程序池.NET 4.0,集成。
  6. 应用程序池标识设置为ApplicationPoolIdentity。
  7. 在已发布文件的物理位置上,右键单击文件夹,然后进入“属性” – >“安全”,并将IUSR添加到用户列表中,并将其授予“完全控制”。
  8. MVC项目的身份validation模式设置为“无”。
  9. 网站身份validation已启用匿名访问,并禁用所有其他function。
  10. 我也为该网站启用了目录浏览function。

毕竟,我重置网站,刷新浏览器,并重置IIS。 我去abc.xyz.com时仍然收到这条消息。 我完全不知道接下来应该检查什么。

我需要的

谁能帮我这个? 我已经用“mvc localhost access denied”等等的组合进行了几次Googlesearch,并且实现了我find的build议。

固定

好。 找到答案…至少对于这个应用程序。 我将身份验证从Windows更改为匿名。 然后,我删除了拒绝匿名访问的.NET授权规则。 这两件事使访问应用程序没有恼人的IIS登录弹出窗口伴随Windows授权。

有一件事我以前没有注意到,我对网站所做的更改反映在发布位置的web.config文件中,而不是来源。

不幸的是,每次我发布我重置身份验证。 这可能是我有这么多麻烦的真正原因。 学过的知识。 懊恼,我是。

另一件事,我没有清除是我使用IIS 7.5。

将其添加到web.config文件中。

<system.webserver> <modules runAllManagedmoduleesForAllRequests="true" /> <!-- rest of config --> </system.webserver> 

希望这会有所帮助。 🙂

如果你想避免错误的文件复制:

  • 在这种情况下使用发布配置文件和转换:

我的开发盒:

 <authentication mode="None" xdt:Transform="Replace"/> <authorization xdt:Transform="Replace"> </authorization> 

生产:

 <authentication mode="Windows" xdt:Transform="Replace"/> <authorization xdt:Transform="Replace"> <deny users="?" /> 

创建您的MVC应用程序时,一个选项是创建一个“Intranet”应用程序。 这将在Web.config默认打开“Windows”身份验证。

将这样的项目发布到IIS时,需要在IIS管理控制台中为您的应用程序启用Windows身份验证。 您可能还必须禁用匿名身份验证。

我得到这个错误,因为这行web.config

https://www.asp.net/visual-studio/overview/2013/using-browser-link

 <appsettings> <add key="vs:EnableBrowserLink" value="false"></add> </appsettings> <system.web> <compilation debug="false" targetFramework="4.5" /> </system.web>