About Us

Why DotNetNukeBlogs.com? Our goal is to be the premier aggregator of DotNetNuke related materials. DotNetNukeBlogs.com was started by DotNetNuke Core Team member employee community member Chris Hammond with the intention to provide a place for the leaders in the DotNetNuke Community to push their content to those needing it most, the users.

If you're a DotNetNuke Expert be sure to get your feed added into our aggregate system. You can read more about us here

DotNetNuke Hosting

Hosting for this website is provided by AppliedI.Net. Be sure to visit them for all your DotNetNuke Hosting needs. 

Latest Community DotNetNuke Blog Posts

The Mighty Blog
Wednesday, August 26, 2015 11:28:15 PM

Understanding the DNN Platform Source Code

Every now and again, we’ll throw in a special episode of DNN Hangout, where we talk about something that we believe will be extra beneficial to the community.  Sometimes this will have one or more special guests attached to it, sometimes it won’t.  In this special episode, Joe Brinkman and I walk through the source code of DNN platform.  It’s grown so much over the years that we realize just how intimidating it can be to someone.  After watching this hangout, that intimidation should be at a minimum.

Want to Be on the Show?

We are always looking for new people to be featured on the show.  You don’t have to be an “expert” in anything.  Just be prepared to chat with us about anything interesting about DNN, no matter how big or small. 

Please let me know in the comments or via email if you’d like to be on DNN Hangout.

Next Episode

In our next hangout, we’ll be speaking with a return guest.  I heard about and unfortunately had to miss his session at last year’s DNNCon.  He showed everyone his tips and tricks to putting together a socially engaging DNN site, and he used DNN-Connect as an example.  Phillip Becker will be joining us and filling us in on the things he learned.

Join the Hangout

Site of the Month

We’re always looking for sites to feature in our Site of the Month segment.  Please let me know if you’d like for me to do a quick segment on one of your sites.

Understanding the DNN Platform Source Code

Show Notes

DNN Connect
Monday, August 24, 2015 9:14:00 PM

It’s always exciting for me to meet someone in the DNN community that I haven’t met before.  This hangout is one of those times.  In this hangout, we speak with Jess (or Jean-Sylvain Boige) of Aricie.  He’s the CTO of Aricie and the genius mind behind the module for DNN called PortalKeeper.  I must admit, I didn’t know anything about PortalKeeper before this hangout, but rest assured… this is going to be a pretty standard tool of mine for current and future projects.  If you’ve gotten even the beginnings of a technical bone in your body, you’re sure to geek-out just like I did!

The Mighty Blog
Monday, August 24, 2015 5:59:46 PM

Jean-Sylvain Boige introduces us to PortalKeeper by Aricie

It’s always exciting for me to meet someone in the DNN community that I haven’t met before.  This hangout is one of those times.  In this hangout, we speak with Jess (or Jean-Sylvain Boige) of Aricie.  He’s the CTO of Aricie and the genius mind behind the module for DNN called PortalKeeper.  I must admit, I didn’t know anything about PortalKeeper before this hangout, but rest assured… this is going to be a pretty standard tool of mine for current and future projects.  If you’ve gotten even the beginnings of a technical bone in your body, you’re sure to geek-out just like I did!

Want to Be on the Show?

We are always looking for new people to be featured on the show.  You don’t have to be an “expert” in anything.  Just come prepared to chat with us about anything interesting about DNN, no matter how big or small. 

Please let me know in the comments or via email if you’d like to be on DNN Hangout.

Next Episode

In our next episode, we’ll be having a very special show.  Joe and I will be taking a deep dive into the source code of DNN.  When it first began, it was a fairly simple project.  Not anymore.

We’re looking for any special guest to join us for this.  You don’t have to do anything, except help us introduce you, and ask questions during the hangout.

Join the Hangout

Site of the Month

We didn’t have any sites to show off this month.  It was mostly my fault for not promoting it as much as I had in the past.  I could have shown some that I have, but I much rather highlight yours.  Please let me know if you’d like for me to do a quick segment on one of your sites.

Jean-Sylvain Boige: Introducing the PortalKeeper Module

Show Notes

Events

  • DNNCon 2015 – Unfortunately, there’s no update on this yet (if you want to organize it, please let me know)

Articles, Videos, and Blogs

Extension Updates

DNN Connect
Friday, July 31, 2015 9:37:00 AM

As most of us are enjoying a summer break (I’m addressing the European crowd of course) we have the opportunity to rethink our work from the helicopter view of our deck chair sipping a well deserved Mojito. And many of us will undoubtedly at one point or other ponder on the future of .net, DNN and our ecosystem. We even devoted a whole conference to it this year. And it’s all still very much “work in progress” when you examine what is happening at Microsoft and DNN Corp. So are we really screwed or not? Is it five past twelve? Did we miss the bus? Should we have listened to our nephew telling us to get with the mainstream and go LAMP? Here are some random thoughts on the ongoing debate and single page applications (SPA) as modules.

Ultimate DNN Modules
Tuesday, July 28, 2015 7:46:00 AM

Just update GalleryPlus module with #DNN built-in search, which was introduced from DNN7.1+. The latest package of GalleryPlus is v3.1 version.

And some useful links with DNN core search architectures and capability:

Search Done Right in DNN 

Integrating with Search – Introducing ModuleSearchBase

DNN Connect
Friday, July 17, 2015 8:56:00 PM

dnnhangout-20150715-800x352

This month we had the pleasure to speak with Mitchel Sellers.  He’s a long-time DNN supporter and advocate.  Aside from being a DNN and Microsoft MVP, he’s literally written the book on extending DNN through modules.  He’s regularly found at community events, and pretty much everywhere online, attempting to help people with their C# and DNN needs. 

DNN Connect
Thursday, June 18, 2015 2:13:57 AM
I believe we need more fast-consumption material to convince people that DNN is the optimal solution for their needs. As "the content-guy" I created a intro-in-100-seconds video - use it as you wish, and it would be great if you too could create such intro-videos in 100 seconds or say 3 minutes. Anything longer and I believe it won't be used in quick-research scenarios.
DNN Connect
Tuesday, June 16, 2015 3:15:00 AM
Now that the Microsoft-Does-Everything-Different is dead and we all are moving to the development models of the future which embrace HTML and JavaScript - it's time to learn Grunt.
DNN Connect
Monday, June 08, 2015 7:54:00 AM

DNN (without 2sxc) is a bit scary for non-developers - because whenever you read tutorials you end up thinking that Visual Studio is the way to go, that you must use C#, and that anything you develop like that won't work in the near future. Which is kind of correct...

So I created a short video showing how to create any kind of App - in this case a News-App - using just [Token]-templates, a few views and more. Simple, future-proof, web-designer-optimized. Have fun, try it out, enjoy.

DNN Connect
Friday, June 05, 2015 9:06:23 PM

DNN Connect
Friday, June 05, 2015 8:15:00 PM

Managing DNN Pull Requests using GitHub

Practice makes perfect, right?  At least that’s what “they” say.  In this case, we attempted to do a special edition DNN Hangout about DNN and GitHub.  Unfortunately, the first time we did it, we only showed a single screen.  So we did it again!  In this hangout, we focus on the process and steps that are performed when you contribute to the DNN GitHub project.  This will be helpful to not only understand the process, but also get some ideas for process in your own projects.

The Mighty Blog
Friday, June 05, 2015 5:59:52 PM

Mandeeps Presents: The New Live Forms Module

In this episode, we have the pleasure to speak with another veteran of the DNN community, Mandeep Singh.  Mandeep is the CEO and founder of Mandeeps, one of the most successful and seasoned vendors in the DNN ecosystem.  Like some of our previous guests, Mandeep has been using DNN since the beginning – and it shows.  He and his team have been extremely successful in building up a large following of customers due to their focus on usability and support.  As you’ll soon find out, they are raising the bar with the latest Live Forms release.

Want to Be On the Show?

We are always looking for new people to be features on the show.  Please let me know in the comments of via email if you’d like to be on the DNN Hangout.

Next Episode

Next month (sometime next week), we’ll be speaking to a special guest from Microsoft.  Make sure you tune in!  Follow @JBrinkman and/or @WillStrohl on twitter to hear about when it will be scheduled.

Site of the Month

Girl Scouts of Eastern MissouriThis month, we featured the website for the Girl Scouts of Eastern Missouri.  It is the regional site for the Girl Scouts of America.  This site was built perfectly for their target market, with it being fun, colorful, and easy to use.  There are a lot of third party modules being used on this site, including Content Injection, Events, DNNGo DNN Gallery, DNNGo PowerForms, and Iframe.  In addition, they’re using the oddly named 20030-UnlimitedColorPack-016 skin.

If you would like for your site to be featured in an upcoming hangout, please let me know.

Mandeeps Presents: The New Live Forms Module

Show Notes

Articles, Videos, Blogs

Extension Updates

The Mighty Blog
Friday, June 05, 2015 5:02:33 PM

dnnhangout-20150530-664x292

Practice makes perfect, right?  At least that’s what “they” say.  In this case, we attempted to do a special edition DNN Hangout about DNN and GitHub.  Unfortunately, the first time we did it, we only showed a single screen.  So we did it again!  In this hangout, we focus on the process and steps that are performed when you contribute to the DNN GitHub project.  This will be helpful to not only understand the process, but also get some ideas for process in your own projects.

Want to Be On the Show?

We are always looking for new people to be features on the show.  Please let me know in the comments of via email if you’d like to be on the DNN Hangout.

Next Episode

Next month (sometime next week), we’ll be speaking to a special guest from Microsoft.  Make sure you tune in!  Follow @JBrinkman and/or @WillStrohl on twitter to hear about when it will be scheduled.

Site of the Month

This was a special episode, so we didn’t follow our normal format of highlighting a DNN site. 

If you would like for your site to be featured in an upcoming hangout, please let me know.

Managing Pull Requests with GitHub

Show Notes

DNN Connect
Friday, June 05, 2015 4:37:11 PM

I'm staring at my monitor with empty editor window open trying to come up with words to describe what has just happened. 3 days of being caught in some kind of whirlwind. Smiles and hugs, presentations, discussions, eating and drinking. And more discussions. And more drinking. And more discussions. And lots of laughing. And then it all slowly evaporates and we each make our way home. How to write down something that remotely approaches the experiences of those 3 days? Here's an attempt.

DNN Connect
Monday, June 01, 2015 1:57:54 AM

Watch the recording of the DNN-Connect Session where Daniel Mettler shows how web sites can replace many native Apps - simply by allowing users to take them offline and making the site look like an App. Together with DNN/2sxc Content Management this allows you to create advanced mobile solutions without Xamarin and bypassing the App-Stores

DNN Connect
Saturday, May 30, 2015 7:02:14 PM

Watch the recording of the DNN-Connect Session where Daniel Mettler showed how AngularJS can be very easy to develop with if you understand the basic principles and follow best practices. 

DNN Connect
Wednesday, May 27, 2015 11:54:39 AM
There are many bad code-samples showing you how to use AngularJS - and following these will make work with AngularJS confusing and difficult. A typical mistake is to use $scope in your code - something that was a good idea 3 years ago but not any more. Let me tell you more...
DNN Connect
Wednesday, May 27, 2015 7:36:07 AM
Modern mobile devices can use web sites as if they were installed native Apps - and the distribution works through normal web servers, not through App-Stores. This opens many opportunities to create HTML based Mobile-Apps much cheaper and faster. These Apps work on all platforms and are easy to update when working with an awesome CMS like DNN/2sxc. Let me show you how to do this...
DNN Connect
Tuesday, May 26, 2015 2:23:00 AM

Last week we released 2sxc 7.1 which now includes permissions on Content-Types, Views and Queries. Thanks to this we were able to create full REST support, so that you can create, read, update, delete Content-Items though HTTP/JavaScript

The Mighty Blog
Sunday, May 24, 2015 6:36:48 PM

WillStrohl.com on a mobile device

It’s been several years since I last updated the skin on my site.  Thanks to Ralph Williams, the site is looking really good again and it’s responsive.  If you need a new design for your site, I highly recommend him.  However, the process to get to this blog post was quite tumultuous – chock full of hours troubleshooting and continuous frustration spread over the past week.  Simply put, my site “appeared” to be loading okay whenever I came to it, but I rarely browsed my own site.  The process of rolling out my new design had revealed to me that this couldn’t be further from the truth. 

Before I go any further, everything I am about to tell you about how I got the site back to being “normal,” you should know that this could all have been easily avoided.  Rule #1 of running your own site end-to-end is this – NEVER neglect your site or server duties.  This was my downfall.  I had neglected my duties for a few years now. 

What’s Old is New Again

Everything I went through were things that I used to do on a daily basis.  I was one of those people that wore every hat possible and I did it well.  However, it’s been several years since I wore all of the hats, so this took much longer than it should have.  Despite the frustration and lost time, it was quite fun to learn about some of the new tools and methods used to fix these kinds of issues.

The Symptoms

Event Viewer: Nothing but ASP.NET errors and warningsEvery page load on my primary site (WillStrohl.com) seemed to be slower than desired.  Then, about every 3rd or 4th page load, it would take an excessively long time.  We’re talking up to 60 seconds or so.  There are several other sites on my server as well, but their page loads only appeared to be affected when my primary site was having one of those excessively long page loads.

I had my task manager up during most of the troubleshooting and noticed that when there was an excessively long page load, both the memory and CPU levels would spike and stay pegged.  My server has a decent amount of resources, so this was troubling.

Troubleshooting Begins

The obvious thing to do was to look at the Event Log in DNN (since that’s what my site runs), and in the event log in Windows.  No matter what site software/CMS you run, the Windows event log will generally have information that your web-based event log won’t have.

The DNN event log had a number of module and page load exceptions showing, but nothing that made me think that my site was running slowly due to the software.  Exceptions happen and the frequency simply wasn’t there.  The Windows event log was another story altogether – there were nothing but exceptions showing.  The most common ones were related to the w3wp.exe process failing. 

I happened to be chatting with a friend that owns arguably one of the best Windows web hosting companies out there, Applied Innovations (shameless plug for my generous web host), and he turned me on to LeanSentry.  I had conveyed the same information that you now know, and he mentioned how their services allow you to get better insights into the seemingly generic errors that are found in the servers event log.  Their UI leaves much to be desired, but it is indeed a great way to get to know what’s happening at a glance.  What I was dealing with originally is below.

Server performance before any fixes applied

If that image looks crazy to you, you’re right.  The very active parts on either end are when I was actively troubleshooting the site and server.  The middle part is where I had dinner and slept.  The consistent thing you’ll notice are the orange and red lines.  These are lines tracking worker process crashes and application restarts.  As you can see, even with little to no traffic, the server and my site were not having a good time.  Something was majorly wrong.

Keeping It Simple: Cleanup First

Like I said, there are a number of sites on this server – mostly for my pet projects, friends, and family.  They’re pretty much all running DNN too, so first thing first – upgrade them all to the most current version and get rid of any that don’t need to be around any longer.  I had a number of sites that had been shut down over the years, but still were loaded on the server in various ways.  First, I deleted all of the unnecessary sites and their references.  Then, I upgraded the few that were left and disabled 51 Degrees on all of them. 

With my primary site, upgrading wasn’t as simple.  The others were quite clean, but I’ve done a lot on my site over the years – that, and combine my new site getting rid of some of the previous features, there was a lot more work to do.  I had to upgrade a few modules and uninstall some others.  In fact, I also found that one of the modules had a repeating error that couldn’t be fixed, so I had to find a replacement for it and uninstall it as well.

As a result of this cleanup, all of my page load times had decreased dramatically, but it didn’t fix the real issue.  The crashes and exceptions in the Windows event log were still occurring. 

Security Updates

The reasoning behind upgrades is primarily two-fold: performance improvements in more recent versions of DNN, and the related security updates.  This is because a couple of the sites were surprisingly still running DNN 5.x!  Following the site upgrades and module upgrades, I installed and ran the new Security Analyzer module by Cathal Connoly.  It did indeed note a few issues on a few of my sites.  No performance was gained here, but I definitely felt a little peace of mind.  This was especially true of my primary site, since it had a very deeply rooted PHP file in one of the HTML editor providers.

Windows Updates

Many of you are thinking, “Duh, Will.”  The reality is that it’s far too easy to forget to run Windows Update on your server – especially when you login from time to time and see notifications that Windows updates had been applied since your login on  your behalf.  However, I still had 1 critical update to apply and 6 other optional updates.  In total, 3 of them appeared to be related to performance improvements.  This proved to be true.  There was a noticeable improvement in page loads and even a noticeable improvement in the frequency of crashes in the event log, but this was not the fix.

Disable FCNMode

During another IM conversation with some friends, Clint Patterson reminded me of a performance blog by Shaun Walker where the FCNMode setting resolved performance issues on DNNSoftware.com.  While my site doesn’t have anywhere near the same user base and traffic, I figured it wouldn’t hurt anything to switch it.  Sure enough, there was again a noticeable performance impact.  My application restart times were at least were cut by half – but still, the other issues remained. 

Debugging the Crashes

I was getting nowhere pretty fast with the previous attempts at narrowing down causes, so I decided to debug this further by using Debug Diagnostic Tool (Debug Diag).  There’s a blog post by Tess Fernandez that walks you through debugging ASP.NET crashes incredibly well.  This step didn’t help me fix anything, but it did help me to narrow my search for causes down to one of two exceptions that were occurring.  A little tip here… You’re going to be generating dump files if you do this – don’t forget to save your dump files to a drive with plenty of available space.

Getting to the Bottom of it All

The issue that was appearing the most in my application monitoring and event log was the fact that w3wp.exe (the process that runs the websites) was crashing quite often.  There were a few other common exceptions.  One appeared to be related to Windows complaining about a culture missing.  This turned out to not be the real issue, but something that happens a lot and is often expected.  So, I cleared the temporary ASP.NET files and continued looking into the other common exception. 

The other exception was one that kept complaining about the Lucene.Net.dll file not being found. 

Unable to find assembly 'Lucene.Net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=85089178b9ac3181'.

Unfortunately, not only was the file present everywhere that it should be, but it was the correct version as well.  It just didn’t make sense to me at all.  I poured over search after search to try and figure out why this might happen.  I even tried explicitly wiring up the DLL and version in the web.config of my site.  Nothing seemed to prevent the worker process crashes. 

Now here’s what was interesting about this to me.  I performed several searches related to this error – some specific to DNN and some much more general.  Regardless, I kept seeing results appear with Umbraco mentioned.  Originally, I kept ignoring those results in favor of others.  At the end though, I got desperate, so I began reading those ones as well.  As it turned out, many Umbraco implementations were having the exact same issue and the fix was astoundingly simple…  Delete the search index files from the App_Data folder.  In DNN, this folder would be as follows:

\App_Data\Search

I deleted all of the files files in that folder and recycled the application pools.  (Don’t worry, the files will be re-created.) 

I immediately saw a performance increase like none before it.  Every page was loading snappy quick.  The occasional long page loads were gone.  The worker process crashes appeared to be no more as well.  I sat there… I clicked on my site aimlessly for about 15 minutes before I finally rejoiced!  No crashes and no noticeable changes were coming back.  The site was back to normal! 

This fix was something so simple… and it had been so difficult to track down.  The end results are shown below.  Note the dramatic dip near the center when the search files were deleted.  All sites on my server have run smoothly since.

Server performance after all fixes applied

At the end of the day, all of these tools and methods helped to get all of my sites back to a state of being highly responsive in both ways that a site owner would care about.  I highly recommend them all.  Especially LeanSentry, but it’s expensive for a non-business site owner like me.  If you ever hear of them having some kind of freemium edition, don’t forget to let me know. 

RSS URL

Resources

DotNetNuke.com The DNN mothership.

Built by

This site is built and managed by Christoc.com Software Solutions, a leading .NET open source consulting company.