2009-10-27 259 views
1

我想阻止我們的IIS 7應用程序中的父配置將以下部分推送到父應用程序下的任何應用程序中的任何子web.configs。Web.Config繼承問題

<configSections> 
     <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
       <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
       <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" /> 
        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
        <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
       </sectionGroup> 
      </sectionGroup> 
     </sectionGroup> 
    </configSections> 

我需要刪除該部分的原因是因爲子應用程序不需要這個或甚至使用它。所以,當父母傳遞下來,我嘗試運行該子應用程序,我在運行時得到如下:

Unable to cast object of type 'System.Web.Configuration.ScriptingScriptResourceHandlerSection' to type 'System.Web.Configuration.ScriptingScriptResourceHandlerSection' 

我看不出有什麼辦法阻止configSections被向下施加到孩子申請web.configs。你不能用<location>它環繞這個特定的部分並添加<clear/>不僅會導致另一個錯誤信息是:

The configuration section 'appSettings' cannot be read because it is missing a section declaration 

回答

1

我相信是由別的事情引起你的運行時錯誤...就像某種類型的裝配衝突,或者只是一個缺少的程序集。您發佈的web.config片段幾乎逐字地存在於我的幾個項目中,我已繼承並且可以很好地與子應用程序配合使用。不過他們引用了舊版本的1.0。

錯誤消息甚至沒有意義......「無法將類型XYZ轉換爲鍵入XYZ」。真?你不能?但他們是同一種類型! :|

+0

是的我需要安裝ASP.NET 1.0 AJAX – PositiveGuy 2009-10-28 13:44:39

2

進一步的建議,您可以通過添加這根web.config

<location path="." inheritInChildApplications="false"> 
... 
</location> 

如記錄here繼承停止子應用程序。

+0

我知道這不是被接受的答案,但這正是我所尋找的,並符合所述問題(甚至認爲這聽起來像提問者有一個不同的問題)。 – Zack 2011-01-01 00:29:02