将asp.net mvc 5部署到iis服务器的问题

时间:2014-02-07 09:15:38

标签: asp.net-mvc iis iis-7 web-deployment

我正在尝试将我的网站发布/部署到iis 7服务器。

当我在visual studio中单击运行时,它可以正常工作。

我按照教程使用Web部署到我的服务器。文件在那里,一切似乎都没问题。

但是当我去网站时:http://10.0.0.12:8000/

我得到:HTTP Error 403.14 - ForbiddenThe Web server is configured to not list the contents of this directory.

我已经提供了网站管理员凭据。我检查了配置的默认页面。

我做错了什么?

enter image description here

这是我的配置文件:

<configuration>
<configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
 <appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.1" />
 <httpRuntime targetFramework="4.5.1" />
</system.web>
<system.webServer>
<modules>
  <remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  <providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
 </entityFramework>
</configuration>

2 个答案:

答案 0 :(得分:9)

要尝试检查的事项:

  1. 在web.config中的runAllManagedModulesForAllRequests="true"部分设置<modules>属性:

    <modules runAllManagedModulesForAllRequests="true">
    
  2. 网站配置为使用ASP.NET 4.0,集成管道模式
  3. 使用应用程序池
  4. ASP.NET 4.0已在IIS中注册。使用以下命令确保是这种情况(如果您使用的是32位服务器,则可能需要使用Framework64调整Framework文件夹):

    c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -ir
    

答案 1 :(得分:1)

转到网站物理部署位置的web.config并打开它 您将在xml文件的末尾找到一个xml标记,作为以下内容

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
               ....
    </handlers>
  <!--ENTER THE CODE HERE-->
  </system.webServer>

在给定位置添加以下代码段保存并刷新您的站点

<modules runAllManagedModulesForAllRequests="true">

同时尝试删除已有的任何其他标签!