完整错误消息为:
基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件类型(System.Web.UI.ScriptManager)不兼容。
有其他人遇到过这个错误吗?
基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件类型(System.Web.UI.ScriptManager)不兼容。
有其他人遇到过这个错误吗?
我通过将以下内容添加到web.config文件中来解决它:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
我认为它会强制 .net 运行时使用这些程序集的新版本。
我在将一个Web应用程序从.NET 2.0升级到3.5时遇到了这个问题。
请检查您的web.config是否正确设置为.NET 3.5。我添加/更改了以下内容:
<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>
<assemblies>
<!--<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
<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"/>
</assemblies>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<httpHandlers>
<pages enableSessionState="true" validateRequest="true">
<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"/>
</controls>
</pages>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
<runtime>
部分解决了问题,但在我们的生产服务器上没有。事实证明,如果你的web.config
文件包含xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
的xmlns属性,则会出现GAC冲突。BAD.web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
etc
GOOD.web.config
<?xml version="1.0"?>
<configuration>
etc
因此,请确保从您的web.config
文件顶部删除2.0参考。
你也可以在 .vbproj 文件中解决这个问题(在我的情况下)。检查这些条目:
<Reference Include="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
这似乎也强制使用3.5版本的DLL。
App_Web_MyControl.ascx.463b83aa.dll
)来解决它,与App_Web_0wdaov4p.dll
一起,但我在部署时遇到了这个错误。一个存档的KB文章:https://mskb.pkisolutions.com/kb/919284 - Paul Stephenson这个问题也可以通过将项目引用更改为System.Web.Extensions 1.0.61025或其他版本来解决,确保项目引用、Web配置文件和Ajax工具包都匹配相同的版本。
当我们使用“应用程序可更新”标志从命令行预编译应用程序时,我们遇到了同样的问题:
aspnet_compiler.exe -u
CodeFile =
改为CodeBehind =
我曾经遇到过从3.5升级到4.0的类似问题。在我的情况下,有一个根网站和虚拟IIS应用程序目录。
代码在我的开发和分段区域中运行良好。
一旦它进入生产服务器,就会崩溃。即使代码是相同的。
我的解决方案是删除虚拟目录并重新创建它。确保应用程序池正确,并且asp.net版本正确。(我的服务器是带有IIS6的Windows Server 2003)。
另一个重要的注意事项-您不能在同一个应用程序池中运行多个asp.net版本。
<system.web>
下添加
<httpRuntime targetFramework="4.5.1" />