我可以安全地删除web.config的哪些区域?

时间:2008-11-06 01:12:30

标签: web-config editing

当开始一个新的Web项目时,我总是有点担心删除web.config的部分。 Net 3.5 SP1似乎有比以往更多的条目。

对于以下情况,您要删除.config的哪些位:

  • WCF Web服务,没有Javascript支持
  • 简单的MVC网站

EDIT 有人可以记录一个简单网站的web.config遗留下来的基本列表吗?

3 个答案:

答案 0 :(得分:4)

我通常只是从web.config中删除项目,直到事情中断 - 这是一个反复试验的过程。

令人惊讶的是,您可以删除多少web.config而不会影响任何内容。它在.NET 3.5中变得相当苛刻。

答案 1 :(得分:1)

与Jeff完全同意,对于您可以从文件中删除的内容,这是一个反复试验的过程。

在调整运行时和http管道方面,它通常是向web.config添加内容的过程,以便关闭它。

开箱即用配置会为管道添加许多模块,具体取决于您正在做什么,您可能不需要其中的一半。

在MSDN上发现了一些关于此问题的文章,以及来自PageFlakes的Omar的这篇文章http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx,这是我在我的(组织不良)书签中唯一能找到的文章,这是一个很好的开头指出优化运行时。

答案 2 :(得分:0)

这是我用于简单WCF服务的精简Web.config

<?xml version="1.0"?>
<configuration>
    <system.web>
        <compilation debug="true">
          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>
        </compilation>
        <authentication mode="Windows" />
        <customErrors mode="RemoteOnly" defaultRedirect="error.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
    </system.web>
    <system.codedom>
      <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                  type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <providerOption name="CompilerVersion" value="v3.5"/>
          <providerOption name="WarnAsError" value="false"/>
        </compiler>
      </compilers>
    </system.codedom>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Service.ServiceBehavior" name="Service.Service">
        <endpoint address="" binding="basicHttpBinding" contract="Service.IService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Service.ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

我删除了很多额外内容,特别是我不需要的脚本模块