Sometime, being on the bleeding edge is not always the frolicking good time it promises to be :)
So, I recently uploaded an early-early-early-pre-pre-ctp build of the Repository module version 4.0 to my personal web site, http://www.gooddogs.com/dotnetnuke for some testing and to give you all in the community a glance at the module in full working order, and as I expected, the first attempt was less than successful. My default repository application is one specifically designed for DotNetNuke module downloads, and among it's features are the use of the Ratings control from the AjaxControlToolkit.
Trying to hit a moving target .. I've been compiling against DotNetNuke 4.8 and the .Net 3.5 framework so I could take advantage of some of the newer techs like Linq to SQL, etc.
First, after requesting my host to install .Net 3.5 on my shared hosting server ( plug for WebHost4Life, my experience with their tech support has always been excellent ). I uploaded version 4 and with held breath, dropped it on a page ... then I let out my breath ... well, actually more of a sigh. I didn't really expect it to sing and dance on the first try, so I wasn't too worried at this point.
The error though gave me pause. "The control rat_RatingControl' requires a ScriptManager on the page. .. hmm, makes sense, I'm using an Ajax control, it only makes sense it would require a ScriptManager. But wait. I'm running 4.08.03 on my site, and if I remember correctly, 4.08.02 fixed that issue. ..thinking ... thinking ... got it! There's an issue with the rich text editor on settings pages ... it doesn't work if you have Ajax enabled and I had previously disabled Ajax on my site !! ah ha! that's got to be it... So, off to the Host Settings page I went and confdently checked the Enable Ajax box, now it would surely work..
*sigh*
nope. same message.
Here's where my 20+ years of developer experience kicked in .. let me try changing random crap for no good reason to see if that would fix it.
nope. same message.
A little forum searching found some snippets about adding code to your module to check to see if Ajax was enabled and manually injecting the ScriptManager .. that must be it...
nope.
A little more web searching and then, just when all hope was fading ... I found this link ...
http://dotnetslackers.com/Ajax/re-63468_Using_Older_AJAX_Controls_in_Visual_Studio_2008.aspx
and the light bulb went off .. I'm compiling my module in .Net 3.5, but the DotNetNuke core that I am running is not.
I breathlessly added the following to the "assemblyBinding" section of my web.config.. fired up the browser .. held my breath one last time ..
<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> |
and ..
SUCCESS!!!
I'm almost glad it took me 2+ days to get version 4 running on my site. It would have been terribly anti-climactic if I had just been able to upload my module, browse to my site and have it work flawlessly on the first attempt. As they say, "that which doesn't make you wish you has selected another career, just makes you stronger"
Anyway .. I hope this helps someone out there if you're compiling against 3.5 and get ScriptManager errors .. I have a little more tweaking to do on the module before I start using it on gooddogs.com for file downloads, I'll be blogging again in a day or two with some more details. .
Stay tuned ... things are about to get exciting!