如何仅使用<system.webserver>为新的MVC3 / Azure项目保留干净的ASP.NET web.config文件?</system.webserver>

时间:2012-01-13 05:54:58

标签: asp.net asp.net-mvc iis web-config system.web

我刚刚使用首先部署在Windows Azure上的EF4代码在MVC3中创建了一个新项目。 我想保持我的“web.config”文件尽可能干净,因为理解它包含的所有标签有点复杂。

我注意到两个部分:<system.web><system.webServer>

第一个用于IIS6,第二个用于IIS7 + 我不需要向后兼容,所以想删除第一个。

我将第一部分很好地转换为第二部分,但我找不到如何转换这些部分:

<system.web>
  <authentication mode="None" />
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral />
      <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral />
      <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral />
      <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral />
    </assemblies>
  </compilation>
  <pages validateRequest="false">
    <namespaces>
      <add namespace="System.Web.Helpers" />
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
      <add namespace="System.Web.WebPages" />
    </namespaces>
  </pages>
</system.web>

如何执行此操作以便删除已弃用的<system.web>?

1 个答案:

答案 0 :(得分:2)

并非所有元素都已弃用。最重要的两个部分是/system.web/httpHandlers,它已移至/system.webServer/handlers和/system.web/httpModules,现在是/system.webServer/modules。您不需要再进一步触摸上面的配置,因为即使在IIS7中,其中的元素仍然是system.web元素的一部分。您是否尝试在更改后运行您的网站?