Last night I upgraded an instance from 4.7.1 to 4.7.1.1 and the instance isn't working properly...
One of the usercontrol macros that worked previously is throwing an error when it's run. The error is....
Error creating usercontrol (usercontrols/sendEmail.ascx) c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\App_Web_sendemail.ascx.6bb32623.a2t2mcr2.0.cs(309): error CS0433: The type 'AjaxControlToolkit.TextBoxWatermarkExtender' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\assembly\dl3\09cfc292\32687a5b_d094cc01\AjaxControlToolkit.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\assembly\dl3\b10356d5\13b4c8f7_a5e5cc01\Umbraco.Forms.References.DLL' at System.Web.Compilation.AssemblyBuilder.Compile() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at umbraco.macro.loadUserControl(String fileName, MacroModel model, Hashtable pageElements)
Coincidently I also installed contour yesterday, so I guess that may have had something to do with it. Not sure where to start with this one.
Looks like it's because Contour has AjaxControlToolkit.dll merged into it's Umbraco.Forms.References.DLL, so your usercontrol doesn't know where to grab it from. I had this issue once and fixed it by adjusting my usercontrol to reference AjaxControlToolkit from Contour's DLL instead and removes the AjaxControlToolkit DLL (see this post). That's not really an ideal solution though...there might be a way around it using some web.config magic?
Its definitely a conflict with Contour and the ContactUs user control - found other evidence of same issue on the forum - they both use AjaxControlToolkit.
Sorted! Change the reference in the ascx file to use the umbraco.forms.references assembly instead of AjaxControlToolkit and don't forget to remove all AjaxControlToolkit files and project reference as well.
If the ACT is installed with Contour, think I would prefer if it was back in the core so we could avoid this sort of hassle. Its only a couple of meg !!!
Problem following upgrade for 4.7.1.1
Last night I upgraded an instance from 4.7.1 to 4.7.1.1 and the instance isn't working properly...
One of the usercontrol macros that worked previously is throwing an error when it's run. The error is....
Error creating usercontrol (usercontrols/sendEmail.ascx)
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\App_Web_sendemail.ascx.6bb32623.a2t2mcr2.0.cs(309): error CS0433: The type 'AjaxControlToolkit.TextBoxWatermarkExtender' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\assembly\dl3\09cfc292\32687a5b_d094cc01\AjaxControlToolkit.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e77495dd\fc42b6c9\assembly\dl3\b10356d5\13b4c8f7_a5e5cc01\Umbraco.Forms.References.DLL'
at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate)
at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath)
at umbraco.macro.loadUserControl(String fileName, MacroModel model, Hashtable pageElements)
Coincidently I also installed contour yesterday, so I guess that may have had something to do with it. Not sure where to start with this one.
Any help is appreciated.
P
Hi,
Looks like it's because Contour has AjaxControlToolkit.dll merged into it's Umbraco.Forms.References.DLL, so your usercontrol doesn't know where to grab it from. I had this issue once and fixed it by adjusting my usercontrol to reference AjaxControlToolkit from Contour's DLL instead and removes the AjaxControlToolkit DLL (see this post). That's not really an ideal solution though...there might be a way around it using some web.config magic?
HTH,
Tom
Just for the fun of it, did you try clearing those temp directories?
Its definitely a conflict with Contour and the ContactUs user control - found other evidence of same issue on the forum - they both use AjaxControlToolkit.
http://our.umbraco.org/forum/developers/api-questions/21986-AjaxControlToolkit-Problem
Will think on it this evening.
J
You could also use assembly version redirecting: http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx
Tom's solution suggestion should work fine
J
It should work fine... So I can't suggest other options for fixing the issue?
Sorted! Change the reference in the ascx file to use the umbraco.forms.references assembly instead of AjaxControlToolkit and don't forget to remove all AjaxControlToolkit files and project reference as well.
If the ACT is installed with Contour, think I would prefer if it was back in the core so we could avoid this sort of hassle. Its only a couple of meg !!!
:-)
Jules
is working on a reply...