2011-10-17 30 views
1

我有一個最近從VS2008轉換到VS2010的Web應用程序項目,它不使用.Net 4.0(3.5代替),但每當我打開標記頁面或控制它顯示以下錯誤,並隨後禁用智能感知:在Web控件/頁面導致VS 2010智能感知失敗的錯誤

http://www.kompeller.co.uk/images/vs2010_error.png

線12在我的web.config看起來是這樣的:

<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> 

該應用程序被配置爲從IIS上運行我的機器,它沒有標準因此它不會從其他web.config繼承。

我到處尋找解決方案,它將我推上了牆!

由於

+0

從我的閱讀中可以看出,你所引用的那一行應該是重複的行。在那之前是否有一個system.web.extensions被定義? – Chris

+0

不,上面沒有重複,只有2個完全不相關的其他部分。這似乎影響到我的所有項目。 – Mantorok

回答

0

好的,我終於Ÿ跟蹤它的基礎上,詹姆斯的建議,即重複的可能不是在該行,這是有問題的配置:

 <dependentAssembly> 
    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral"/> 
    <bindingRedirect oldVersion="1.0.0.0-3.5.0.0" newVersion="3.5.0.0"/> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" culture="neutral"/> 
    <bindingRedirect oldVersion="1.0.0.0-3.5.0.0" newVersion="3.5.0.0"/> 
    </dependentAssembly> 

我刪除了這一點,一切都很好!

0

問題可能不完全上線12的錯誤非常明確指出System.Web.Extensions在web.config雖然定義了兩次。只需搜索System.Web.Extensions的所有實例並刪除重複。

檢查assemblies部分,並確保有沒有重複:

<compilation debug="true"> 
    <assemblies> 
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />  
     <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
</compilation> 

檢查pages/controls部分,並確保有沒有重複:

<pages> 
    <controls> 
     <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     ... 

檢查httpHandlers部分:

<httpHandlers> 
    <remove verb="*" path="*.asmx"/> 
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    ... 
+0

我已經這樣做了,在這些部分中沒有重複。有趣的是,這只是在我轉換到2010年後纔開始發生的,我已經比較了源代碼控制中的版本,並沒有發生重大變化。 – Mantorok

+0

您的回答促使我找到其他情況,請參閱下面的答案,謝謝! – Mantorok

+0

我告訴你搜索System.Web.Extensions的任何實例,並替換重複... –