【问题标题】:Cannot host website with system.web.extensions无法使用 system.web.extensions 托管网站
【发布时间】:2013-02-08 07:22:11
【问题描述】:

我正在开发一个 .net 4.0 Web 应用程序,并将其托管在 IIS 上。在web.config 文件中没有使用<system.web.extensions> 的情况下成功托管了多次应用程序。

应用程序发布时没有任何错误,但是当我尝试使用IIS 托管它并尝试启用Directory Browsing 时,它会发出错误The configuration section system.web,extensions cannot be read because its missing a section declaration。我已经将它设置为应用程序池中的 .net 4.0 应用程序,但仍然出现错误。

以下是我的web.config 文件,

  <?xml version="1.0"?>
  <!--
    For more information on how to configure your ASP.NET application, please visit
    http://go.microsoft.com/fwlink/?LinkId=169433
    -->
  <configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.0">
        <assemblies>
          <add assembly="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
          <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        </assemblies>
      </compilation>
      <httpRuntime requestValidationMode="2.0" executionTimeout="1000" maxRequestLength="2147483647" />
    </system.web>
    <system.web.extensions>
      <scripting>
        <webServices>
          <jsonSerialization maxJsonLength="2147483647">
          </jsonSerialization>
        </webServices>
      </scripting>
    </system.web.extensions>
  </configuration>

我可以知道我在这里做错了什么..这真是令人头疼,我已经尝试了大部分在线资源,但都建议将应用程序池设置为.net 4.0,我已经这样做了..

非常感谢您的帮助:)

【问题讨论】:

    标签: c# asp.net iis web-config iis-6


    【解决方案1】:
    <configuration>
      <configSections>
        <section name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup" />
      </configSections>
    </configuration>
    

    将此添加到配置部分。奇怪的是它在 applicationHost.config 中没有默认

    【讨论】:

    • 啊我需要将它添加到applicationHost.config 对吗?我现在正在尝试并会回发:)
    • 让我澄清一下。通常它位于 applicationHost.config 中,因此您无需在 app.config 中进行设置,但是如果缺少它,您可以将其添加到任一位置。
    【解决方案2】:

    如果您在 IIS 上上传 4.0 应用程序,并且应用程序池设置为 2.0 - 3.5 集成管道,那么您将看到有关缺少扩展部分声明的错误。

    您需要在 IIS 上为 4.0-4.5 Integrated Pipeline 设置应用程序池。

    【讨论】:

    • 其实这是最好最简单的解决方案。
    【解决方案3】:

    您可以通过在 webconfig 文件中添加以下配置设置来解决此问题

    <configSections>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
            </sectionGroup>
          </sectionGroup>
        </sectionGroup>
      </configSections>
    

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 2017-11-12
      • 1970-01-01
      • 2013-06-13
      相关资源
      最近更新 更多