Chris Hammond
Friday, May 05, 2017 1:22:19 AM
If you’ve setup a new DNN site running on version 9.0 or 9.1, you’ll notice that you don’t have the ability to setup the Google Analytics module/code anymore. For some reason, DNN Corp in its infinite wisdom decided to remove the core, critical functionality from the Platform version of DNN and only leave it in the paid versions. Well fear not, you can easily add Google Analytics code to your pages, follow these steps.
weblogs.asp.net
Monday, April 03, 2017 2:51:00 PM

If you’re not switching all of your websites to utilize SSL encryption by default, you’re going to miss out on search results for many years to come! (see here for more info)

In the past, the notion of switching all your sites to use SSL would be daunting and a costly affair, especially if you have too many different websites to count (what, not everyone has this problem?).

I’ve been recently setting up a few websites on Azure for test purposes, and decided to look into how I could setup SSL for those sites. I came across a blog post from Rick Strahl regarding using Let’s Encrypt, for free SSL configurations. Basically with Let’s Encrypt, you can get a free SSL certificate, the main catch though is that they need to be renewed very frequently, they expire in 90 days.

From there I came across a Site Extension for Azure that can be setup to automatically configure, assign, and even renew these certificates. This takes quite a bit of work to get setup, but once setup, requesting certificates is super simple. As you add more “custom domains” to your Azure instance you can setup a new certificate for each. One problem I ran into however is that once I had setup two certificates, the extension started throwing an error when trying to add new certificates for domains. The error was:"

Cannot update IP SSL Bindings because total number of allowed IP addresses per site will be exceeded.
CloudException: Cannot update IP SSL Bindings because total number of allowed IP addresses per site will be exceeded.

This I believe is possibly due to my limitations on the Basic App Service that I have setup, where you are limited to SSL IPs, but you can have unlimited SNI SSL certs. Completing the binding process for the SSL certificate is easy, simply go to your Azure Portal, navigate to the App Service and then the SSL Certificates section. Click the Add SSL Binding button, choose your domain and select the appropriate certificate!

Boom, SSL setup and ready to go!

Update: Looks like I had a setting configured incorrectly in the Site Extension, I simply removed the web app setting letsencrypt:UseIPBasedSSL  see this thread: https://github.com/sjkp/letsencrypt-siteextension/issues/118#issuecomment-291241410

weblogs.asp.net
Tuesday, March 07, 2017 1:20:15 AM

With the release of Visual Studio 2017 coming in a few short hours, I am proud to release the latest update for the Christoc’s DotNetNuke Extension Development Templates!

With this release I’ve updated my suite of DNN extension templates (modules and themes) to support Visual Studio 2017.

You can download these templates from Visual Studio 2017, by going to the Tools/Extensions menu. From there you can search the Online option for “DotNetNuke” choose the “DotNetNuke (DNN) Development Project Templates” option.


image

Other Download Options:

If you have any feedback, please visit the Project’s Github Repo


Here’s a quick video of how to install the templates in Visual Studio 2017


Here’s a quick video on how to make create your first DNN module. After creation the video walks you through the compilation and installation of that module into your DNN site.

weblogs.asp.net
Sunday, March 05, 2017 9:32:32 PM

In an earlier blog post I talked about the EventLog table and the Exceptions table, specifically in terms of how to “clear” the tables out. This post will talk specifically about how to keep the EventLog table cleaned up to begin with.

In DNN you have the ability to configure if you would like specific EventLogTypes to be tracked or not. By default in DNN there are over 100 different events that can be tracked in the EventLog table. Many of these are turned off by default, you can configure them to be “on” by going to the Admin Logs page in the Persona Bar, and choose the Log Settings tab

image

In doing so you will be presented with a page that looks similar to

image

From here you can click on the Edit pencil on each row and enable or disable the Logging setting

image

You can also turn options on such as email notifications and the Keep Most Recent entries option

image

Some of the default options in DNN will have the Keep Most Recent option configured to a low number, like “10 Entries” but some will have them set to All. This can cause the EventLog table to fill up with many many many events, depending on how much traffic your website gets. You can go through and set these all manually through the ADMIN UI, or you can do it in bulk in the database with this simple SQL statement:

update Eventlogconfig
set keepmostrecent = 10

If you’re using the SQL Console page you can use this statement

update {databaseOwner}{objectQualifier}Eventlogconfig
set keepmostrecent = 10


Warning: You might actually want to keep ALL logs for your site, depends on your industry and needs, but I prefer to keep mine pruned to try to keep the database smaller, more manageable and better performing.

weblogs.asp.net
Sunday, March 05, 2017 9:16:01 PM

image

At some point, if you manage a DNN based website long enough, you are going to run into a problem where your database seems to have grown WAY bigger than it should be. I’m not talking a couple hundred megs, I’m talking gigabytes, lots of gigabytes. This post will hopefully help you get that under control.

Tonight, I had a DNN instance that I was looking to migrate to Azure, in preparation for this I remoted into the web and database servers to see what the files and database looked like. The database MDF file was almost 1.5gb in size, for a DNN instance that has 5 portals, and very very little activity, this was concerning. I knew where to start looking though, there are two tables to start with, Exceptions and EventLog. The EventLog is tied to the “Admin Logs” in DNN 9, in earlier versions of DNN the menu item was Event Logs or even Event Viewer.

Running the following simple SQL query will get you an idea of how many rows are in those tables.

select count(1) from Exceptions with (nolock)

select count(1) from EventLog with (nolock)

If you’re running this in the SQL Console on your DNN site you might run it with

select count(1) from {databaseOwner}{objectQualifier}Exceptions with (nolock)

select count(1) from {databaseOwner}{objectQualifier}EventLog with (nolock)

This will give you a “count” of the number of rows in each of those tables. In my case, the EventLog table only had 394 records, but the Exceptions table had 300k+. That’s a pretty common cause of database size creep in DNN. Ultimately what my issue was, I had one site that still used “SolPartMenu” in the Containers for the skin, and with DNN9, those no longer work, and every request that tried to load that site (mostly search engines hitting it) caused multiple records to be thrown into the EventLog and Exceptions table.

Message:Object reference not set to an instance of an object.
StackTrace:
at DotNetNuke.UI.Skins.Pane.LoadModuleContainer(ModuleInfo module) at DotNetNuke.UI.Skins.Pane.InjectModule(ModuleInfo module)

Now, the question is how did I know what the cause of that cryptic error message was? Well, I had just spent some time with a customer of mine this weekend upgrading their website, and they ran into the same problem, so it was fresh in my head, and I was easily able to correct this.

But let’s get back to the topic of the post, the Exceptions and EventLog tables. DNN has a way to “purge” the eventlog built into the system, and most “types” of events only get stored 10 times, so when the 11th event comes in, the first one gets cleared from the system. But, the exception Events also get logged to the Exceptions table, and there doesn’t appear to be anything in DNN that cleans that table up automatically. Because I upgraded the site to DNN 9 well over a month ago, I had hundreds of thousands of exceptions in the table. So I needed to get this cleaned up, that’s easy with the following SQL statement.

truncate table Exceptions

or the DNN SQL Console version

truncate table {databaseOwner}{objectQualifier}Exceptions

That forces the table to be purged, and then using SQL Server Management Studio I was able to run a SHRINK command on the database, bringing the files back down to an expected 30 mb.

Now you might think, well can’t I do the same on the EventLog table? Unfortunately the simple answer to that is no. The longer answer is YES, but you’ll want to look at Sebastian’s SQL script for doing so: http://dnnscript.codeplex.com/releases/view/612643

weblogs.asp.net
Monday, February 20, 2017 10:58:53 PM

I ran into a problem this evening with Visual Studio 2017 hanging when opening my Solution that I'm working on for my DNNTemplates VSIX project. It would open up solution explorer, it would also open up the TABS in visual studio, but it wouldn’t complete the process and would hang on “Opening the files”.

Basically every time I opened the solution, no matter what I tried, rebooting, deleting the .SUO file, deleting the .USER files, nothing would seem to work. I would let Visual Studio site for hours, and it would never complete the opening process.

Finally I went in and deleted the contents of the .VS folder, after deleting this contents the solution can successfully be opened.

So if you run into problems with “Opening the files”, try deleting the contents of the .vs folder in your solution directory, hopefully that will help you.

If anyone from the Visual Studio team wants to reach out to me on this, I have perfview files and files collected from collect.exe as I was trying to troubleshoot the issue.

weblogs.asp.net
Sunday, February 19, 2017 11:49:51 AM

With the improvements in Visual Studio 2017, the installation process can be much more compact and streamlined, allowing you to choose which “workloads” you want to install. But what happens when you need a workload that you don’t have installed? Well with a little digging I was able to determine the process to do so, check out the steps listed below.

  1. Shut down any running Visual Studio 2017 instances
  2. Click on your Start Menu and Type “Visual Studio Installer”
    image
  3. Once you have the installer open, if you see an “Update” option, go ahead and update Visual Studio 2017 before proceeding
    image

  4. After you have VS up to date, you should see a Modify option available
    image
  5. Once you click Modify you’ll be presented with the Workloads selection option in which you can choose your necessary workloads.
    image

Any time you need to add ore remove workloads, you can always get back to this screen.

With the Release Candidate for Visual Studio 2017 Community I did run into one problem where the “install” file ended up being lost. If that’s the case just download the vs_community.exe again from Microsoft and run that, it’ll restore what you need and get you back to the appropriate process.

weblogs.asp.net
Thursday, February 09, 2017 11:55:00 PM

Mary Jo Foley is reporting that Visual Studio 2017 will release on March 7th, 2017.

I guess I better get to updating my DNN Extension Templates for Visual Studio before that release hits!

Head on over to http://launch.visualstudio.com for details on some virtual launch events.

What are you looking forward to most with Visual Studio 2017? 

I'm hoping for faster installation times than it takes to install your operating system!

BicycleTips.com
Sunday, January 29, 2017 10:23:41 PM
2016 was a fairly down year for my biking, I think I only commuted to the office a handful of times, and my total mileage for the year was well under 1,000 miles. I'm planning a couple of things in 2017 that will hopefully get me to exceed that poor showing (819 miles), and hopefully triple it, with an ultimate goal of riding 2,500 miles for the year.
Project350z
Sunday, January 29, 2017 3:37:08 PM
The car is gone! Good luck Chase!
weblogs.asp.net
Sunday, January 29, 2017 12:43:51 PM

Depending on what the "source" is, it appears that DNN 9.0.1 was released either 11 days ago, or 3 days ago.

So which is it, 11 or 3? Who cares, let's just go over some of the basics of what the release covers.

First off, there are a number of security updates in this release, primarily around API security.

Chris Hammond
Thursday, January 05, 2017 6:32:27 PM

DNN9 appears to be an evolutionary leap forward for the DotNetNuke CMS, but while there are many advances, there are some big misses of features that somehow got left behind, or at least hidden away so that finding them for someone who isn’t a DNN expert (such as myself, if I do say so) is impossible, unless of course you read this blog, then you’ll be on your way to utilizing DNN9 in ways that the average Joe could only hope to.

Chris Hammond
Thursday, January 05, 2017 6:12:20 PM

I woke up this snowy January morning with email from my most excellent web hosting company (www.appliedi.net) letting me know that my database server was almost out of hard drive space. Thanks for the heads up to the AppliedI team!

My first thought was “How is that possible?” I was just on the server in the past couple of days doing all my DNN9 upgrades, and there were 20 gigs of free space not 4 days ago. With a quick check I found that one of the databases was 9gb. 4 days ago that database was <250mb.

Chris Hammond
Monday, January 02, 2017 2:45:47 PM
If you are having problems adding Pages in DNN 9, read this blog post. I recently upgraded all of my sites to DNN 9, the most recent one being upgraded last night. This morning I wake up to an email from a client of mine reporting a problem with adding pages in one of their sites that they also upgraded to DNN recently. I read through their email, and decide that I’ll look into their issue a bit later, have an itch to scratch on one of my own websites, so I’ll get to them later (sorry client).
weblogs.asp.net
Tuesday, November 22, 2016 11:30:03 AM

This morning we received an email from leo-wood - domaincop.net with the following information in it

Dear Domain Owner,

Our system has detected that your domain: DOMAINREMOVED is being used for spamming and spreading malware recently.
You can download the detailed abuse report of your domain along with date/time of incidents. LINK REMOVED

We have also provided detailed instruction on how to delist your domain from our blacklisting.

Please download the report immediately and take proper action within 24 hours otherwise your domain will be suspended permanently.

There is also possibility of legal action depend on severity and persistence of your abuse case.

Three Simple Steps:
1. Download your abuse report.
2. Check your domain abuse incidents along with date and time.
3. Take few simple steps for prevention and to avoid domain suspension.

LINK REMOVED

Please look into it and contact us.


Best Regards,
Domain Abuse Admin
DomainCop Inc.
Tel.: (139) 729-59-00

From my research, this appears to be 100% fake, if you receive similar emails from domaincop.net please do not click on any of the links!

Project350z
Tuesday, November 15, 2016 12:39:38 AM

2003 Nissan 350z Touring $9000

Well, the time has come for V3 of Project350z.com to be put up for sale. Before we part it out we will post the car is as, with all the autocross bits installed and attached. If the car doesn’t sell in the next week, we will likely start removing all the autocross bits and putting it back to as close to stock as possible. The car is available in St. Louis (Wildwood) Missouri. If you are interested in seeing it, give me call. (Chris: 650-260-8344)

Pictures available on Instagram

Videos available on another Instagram account

Project350z
Sunday, August 21, 2016 11:18:44 PM

P350z-July2016

So the 2016 ProSolo series is nearing its end, with the final two events of the year being held within 6 hours of the house, I entered both. The Wilmington event turned out to be another disappointing one for me, not because of the location or people, but simply due to my lack of ability to drive this car lately.

Chris Hammond
Monday, August 15, 2016 2:49:19 AM
We’ve had the 2016 Solo Nationals Pick The Winners contest running for a few weeks now, in case you haven’t seen it yet, here’s a link, and some additional details http://www.sccaforums.com/pick-the-winners/2016-solo-nationals
Project350z
Monday, July 11, 2016 12:44:14 AM

So here we are, another month has gone by since the last blog post, time for an update here on the status of @Project350z.

TL;DR: Crap

So at the end of April I headed to Peru Indiana for the Gateway Autocross Association event at Grissom, I stuffed 4 tires into the 350z and headed on my way Friday afternoon.

Chris Hammond
Monday, July 04, 2016 2:01:11 AM
In prep for the 4th of July 2016, I am working on a Marinade for the filets we picked up at Costco today. The base for the marinade is Jack Daniel’s Tennessee Honey. I’ll follow up with an update on how this turns out, but here’s what I started with, the night before:
BicycleTips.com
Sunday, June 12, 2016 11:52:22 PM
In case you missed the news, the bike path connecting the Monarch Levy trail, and the Katy Trail opened up last week (week of June 10th, 2016). The new bridge has been in the works for a couple of years now, and while the car lanes opened up a while back, the bike path had been closed until last week. We can now ride from our house in Wildwood, to a trail that crosses nearly all of the state of Missouri (Katy Trail) with only having to ride on 8 miles of roadway to do it. I look forward to taking advantage of this luxury, with the hopes of riding the entire Katy Trail sometime in 2017.
Project350z
Saturday, April 23, 2016 12:21:33 AM

So it has been a while since I’ve had the time to get a blog post up here, so let’s get started.

After the last post, the car was almost ready for the Dixie National tour, held in Cecil Georgia, but there was some final prep to do. I took the car down to Solo Performance to corner weight and align the thing, with good results.

BicycleTips.com
Wednesday, March 30, 2016 9:44:01 AM
There are many obvious health benefits to riding your bicycle, and by riding you bicycle year round you can work to keep your body in shape for the prime riding in Spring Summer and Fall. One of the best benefits I’ve found to cold/chilly weather riding is the clearing out of the sinuses!
Project350z
Monday, March 07, 2016 12:13:53 AM

It was a good weekend on the 350z, I made progress on pretty much everything I needed/wanted to do to start the 2016 season, with only the corner balance and wheel alignment remaining. Those are scheduled for Monday at Solo Performance.

Project350z
Monday, February 29, 2016 11:14:25 PM

This weekend I spent some quality time finally working on the 350z before the upcoming autocross season (Dixie Champ Tour is coming up quickly).

In prep for STU I want to see what kind of weight I can get out of the car, I really don’t know if this car (2003 Touring) can come anywhere close to what my first one (2003 Enthusiast, 3075lbs) weighed, or even the second one (2004 enthusiast, 3062). I have yet to get it up on the scales, but I assume going into this that the car is heaver than both of them. The power, heated, leather seats that came with the car, along with the potential extra stereo equipment, and electronics for the VDC mean the car likely weighs a good bit heaver than the previous cars.

RSS URL

Chris Hammond is

Chris Hammond is a father, husband, leader, developer and car guy. Chris has long specialized in ASP.NET and DotNetNuke development, so you will find a variety of topics here on the website. For more information check out the about me page.

If you are looking for DotNetNuke consulting please visit my business website at http://www.christoc.com/

Disclaimer

Any blog posts here are solely the opinion and views of Chris Hammond only. Comments on blog posts are the opinion of the commenter, and not Chris Hammond.

Powered By

This website is managed by Christoc.com Software Solutions

DotNetNuke Hosting

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

Find Me