移动到VS 2012后,MVC3内部网应用未经授权

时间:2013-02-21 16:13:23

标签: c# asp.net-mvc-3 visual-studio-2012 iis-express

我有一个MVC3内部网应用程序,最初是在VS 2010中开发的。我只是试图在运行VS 2012的新机器上打开它,但我得到了这个:

  

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

它配置为在本地IIS Web服务器下运行(使用IIS express)。这个项目中有一个使用.svc文件的WCF服务,我可以访问它。我只是通过浏览器访问MVC站点时出现此错误。如果我将项目切换到使用Visual Studio开发服务器,它似乎工作正常,但我必须在IIS Express下运行它,因为我需要能够远程访问该站点以测试某些功能。

我是否需要在web.config或项目属性中执行此操作才能使此项目在VS 2012中运行?

以下是我的web.config

的摘录
<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>
<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
</profile>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>
<customErrors mode="Off" />
<httpModules>
  <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" />
</httpModules>

1 个答案:

答案 0 :(得分:0)

这个问题的答案解决了我的问题:

Windows authentication does not work

我只是编辑了applicationhost.config文件以允许Windows身份验证,并且该站点已启动并在IIS Express下运行:

<windowsAuthentication enabled="true">...</windowsAuthentication>