Asp.net mvc IIS 7中的ASP MVC导致:HTTP错误403.14-禁止

Asp.net mvc IIS 7中的ASP MVC导致:HTTP错误403.14-禁止,asp.net-mvc,iis,hosting,Asp.net Mvc,Iis,Hosting,我正在开发一个ASP MVC web项目。现在我有一个需求,它迫使我在开发过程中部署到IIS7(以检查一些特性)。每当我尝试键入网站的URL时,就会收到上面提到的错误消息。(注:开发机器:Vista Home Premium,IIS7) 我到目前为止所做的: 编辑了主机文件(C:\WINDOWS\system32\drivers\etc\HOSTS) 在其中放置两个域(127.0.0.1domain1.com和127.0.0.1domain2.com) 创建了一个文件夹c:\websites\d

我正在开发一个ASP MVC web项目。现在我有一个需求,它迫使我在开发过程中部署到IIS7(以检查一些特性)。每当我尝试键入网站的URL时,就会收到上面提到的错误消息。(注:开发机器:Vista Home Premium,IIS7)

我到目前为止所做的:

编辑了主机文件(C:\WINDOWS\system32\drivers\etc\HOSTS)

在其中放置两个域(127.0.0.1domain1.com和127.0.0.1domain2.com)

创建了一个文件夹c:\websites\dirOfApplication,并从Visual Studio 8中部署到此文件夹

在IIS7中,创建了一个新站点,主机名为domain1.com,应用程序文件夹如上所述

在Web浏览器中键入地址domain1.com会导致上述错误(HTTP错误403.14-禁止-Web服务器配置为不列出此目录的内容。)


我想我错过了什么,但不知道是什么!尝试部署文件System.Web.Mvc、System.Web.Abstraction和System.Web.Routing,结果相同。每当我尝试按F5并运行应用程序时,它都可以正常工作

这是因为对你(我)正在做的事情太确定了

在我的计算机上安装了IIS 7,但未安装所需的ASP.NET组件(控制面板->程序->打开/关闭->ASP.NET)


所以安装这个解决了问题

我也遇到了同样的问题。这篇Microsoft支持文章为我修复了它。

在Windows控制面板“程序和功能”应用程序的“打开或关闭Windows功能”对话框中,执行以下步骤:

  • 导航到以下节点:Internet信息服务-->万维网服务-->通用HTTP功能
  • 确保选择了“HTTP错误重定向”选项 -或

  • 导航到以下节点:Internet信息服务-->万维网服务-->性能功能
  • 确保选择了“静态内容压缩”选项。选择任一选项后,单击“确定”保存更改 重新启用HTTP错误重定向模块或静态内容压缩模块可确保ASP.NET和IIS正确同步HTTP管道事件。这使URL路由模块能够处理无扩展的URL。

    就此回答,问题:

    运行
    aspnet\u regais-i
    。我经常发现你需要这样做才能让4.0应用程序正常运行。以管理员身份打开命令提示符(右键单击命令提示符图标并选择以管理员身份运行):

    安装并注册后,请确保应用程序正在使用设置为.NET 4.0的应用程序池

    更新:我刚刚发现这个命令有问题。使用-i将所有应用程序池更新为ASP.NET 4.0


    使用
    aspnet\u regiis-ir
    安装ASP.NET版本,但不会将任何web应用程序更改为此版本。您可能还需要查看-iru选项。

    如果您正在运行x64,请检查您是否已在应用程序池设置中启用32位应用程序


    我也遇到了同样的错误,尽管提供了所有解决方案,但原因如下:

    • 缺少DLL
    • 数据库连接字符串指向无法访问的服务器

      • 也许它对某人有用: 在使用.NET framework 4.5将我的应用程序转换为MVC 4并使用IIS 7.0在我的服务器上安装该框架后,我遇到了问题中提到的相同“禁止”错误。当我注意到问题时,我尝试了上面描述的所有选项,但都没有效果

        <system.webServer>
         <modules runAllManagedModulesForAllRequests="true"/>
        </system.webServer>
        
        
        
        我的web.config中缺少。 加上这个之后,一切都正常了。简单,但容易被忽视

        编辑:

        当然,上述解决方案会奏效,但这确实是浪费资源。我认为最好像评论中所指出的那样添加路由模块

        <system.webServer>
          <modules>
            <remove name="UrlRoutingModule-4.0" />
            <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
          </modules>
        </system.webServer>
        

        在我的例子中,web.config和除/bin文件夹以外的所有文件都丢失了(没有以某种方式复制)。

        愚蠢,但这是我最后一次检查。

        我也遇到了这个错误。所有配置和权限都正确。
        但是我忘了将Global.asax复制到服务器,这就是导致403错误的原因。

        请注意,有时错误的
        托管管道模式将导致此错误。有两种选择可选择
        集成
        经典

        我最近遇到此错误,发现问题是由于Windows服务器上未启用“HTTP重定向”功能造成的。这篇博文帮助我解决了疑难问题,找到了答案(尽管是较旧的Windows Server版本):对于较新的服务器,请转到“计算机管理”,然后向下滚动到Web服务器角色,然后单击“添加角色服务”

        ,在我的案例中,以下方法帮助了我:

      • Windows\Microsoft.Net\Framework

      • 向system.webServer添加模块

        <system.webServer>
            <modules runAllManagedModulesForAllRequests="true"/>
            ...
        </system.webServer>
        
        
        ...
        

      • 我一直在使用身份模拟:

        <system.web>
            <identity impersonate="true" userName="domain\username" password="password"/>
        </system.Web>
        
        
        
        向上推服务器时,您必须授予用户名对
        临时ASP.NET
        文件文件夹的访问权限,以便它能够正确读取/写入/执行:

        C:\Windows\Microsoft.NET\“frameworkversion”\“aspversion”\临时ASP.NET文件


        显然,用您正在使用的版本替换“frameworkversion”和“aspversion”

        步骤1:选择IIS中产生HTTP错误的站点,然后单击目录浏览,如下图所示:

        步骤2:在IIS的目录浏览窗口中,在右侧的操作中单击启用,如下图所示:

        现在asp.net网站已启用目录浏览,只需在IIS中重新启动web应用程序并在浏览器中浏览该网站即可
        <system.web>
            <identity impersonate="true" userName="domain\username" password="password"/>
        </system.Web>
        
        <precompiledApp version="2" updatable="true"/>
        
        dism /online /enable-feature /featurename:IIS-ASPNET45 /all
        
        <!-- was -->
        <runtime>
            <assemblyBinding>
                <dependentAssembly>
                    <assemblyIdentity name="System.Web.Mvc" />
                        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
        
        
        <!-- should have been -->
                        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
        
        dism /online /enable-feature /all /featurename:IIS-ASPNET45