Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移动到VS 2012后,MVC3内部网应用程序未经授权_C#_Asp.net Mvc 3_Visual Studio 2012_Iis Express - Fatal编程技术网

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

C# 移动到VS 2012后,MVC3内部网应用程序未经授权,c#,asp.net-mvc-3,visual-studio-2012,iis-express,C#,Asp.net Mvc 3,Visual Studio 2012,Iis Express,我有一个MVC3内部网应用程序,最初是在VS2010中开发的。我刚刚尝试在运行VS 2012的新机器上打开它,但我得到了以下信息: 错误消息401.2.:未经授权:由于服务器配置,登录失败。请验证您是否具有查看此目录的权限 或基于您提供的凭据和身份验证的页面 在Web服务器上启用的方法。请与Web服务器的管理员联系 管理员请求更多帮助 它配置为在本地IIS web服务器下运行(使用IIS express)。这个项目中有一个使用.svc文件的WCF服务,我可以很好地访问它。我只有在通过浏览器访问M

我有一个MVC3内部网应用程序,最初是在VS2010中开发的。我刚刚尝试在运行VS 2012的新机器上打开它,但我得到了以下信息:

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

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

在web.config或项目属性中,我是否需要做些什么才能使该项目在VS 2012中正常工作

下面是my 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>

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

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

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

看起来很明显,但新机器上是否安装了MVC@Vaze是的,安装了MVC3以及2和4。要在IIS Express上启用MVC,我需要做些什么吗?只要安装了库,它们就可以与IIS Express一起正常工作。您的Windows身份验证似乎有问题。我现在猜,但是你能试着取出
部分吗?也许你可以看看这些帖子:@Vaze也行,但现在网站不识别我的用户名,也不提示输入我的用户名/密码。好了,看来我们找到问题了。这有帮助吗?