DotNetNuke Support

DNN Event ID 1310 after moving website to new server Exception message: Unsecured Passwords Format Detected

IIS throwing Event ID 1310 Exception message: Unsecured Passwords Format Detected

1310

The Error Message

Exception information: Exception type: ConfigurationErrorsException Exception message: Unsecured Passwords Format Detected. The Membership Provider that contains the unsecure passwords format is: AspNetSqlMembershipProvider. The obsoleted password format is: Encrypted. For more information, see https://go.microsoft.com/fwlink/?linkid=834784.

Request information: Request URL: Request path: User host address: User: Is authenticated: False Authentication Type: Thread account name: IIS APPPOOL\DefaultAppPool

The Problem was actually simple and a “user error”

We tried to connect the website up to the wrong database. i.e. When we copied the database and moved it, we inadvertently copied the wrong database. This caused the above error due to the fact that the machinekey data in the web.config file was wrong for the database.

This caused the error 1310 to be thrown and the Application Pool associated with the new incorrectly setup site to stop.

The fix. 

Connect to the correct database!

Update

Further to this we encountered a really weird set of errors after this. Initially the error appears to be a connection issue. But then we started getting failings that would come an go.

Error logs showing plenty of Event ID 1310 but also in the DNN logs:

DotNetNuke.Services.Log.EventLog.DBLoggingProvider – System.Data.SqlClient.SqlException (0x80131904): Could not allocate space for object ‘dbo.EventLog’.’PK_EventLogMaster’ in database ‘bla’ because the ‘PRIMARY’ filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

 

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

 

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

 

   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

 

   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()

 

   at System.Data.SqlClient.SqlDataReader.get_MetaData()

 

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 

   at System.Data.SqlClient.SqlCommand.ExecuteScalar()

 

   at PetaPoco.Database.ExecuteScalar[T](String sql, Object[] args)

 

   at DotNetNuke.Data.PetaPoco.PetaPocoHelper.ExecuteScalar[T](String connectionString, CommandType type, String sql, Object[] args)

 

   at DotNetNuke.Data.SqlDataProvider.ExecuteScalar[T](String procedureName, Object[] commandParameters)

 

   at DotNetNuke.Data.DataProvider.AddLog(String logGUID, String logTypeKey, Int32 logUserID, String logUserName, Int32 logPortalID, String logPortalName, DateTime logCreateDate, String logServerName, String logProperties, Int32 logConfigID, ExceptionInfo exception, Boolean notificationActive)

 

   at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.WriteLog(LogQueueItem logQueueItem)

 

ClientConnectionId:e495809e-60d5-44f2-b883-fe81fbe1126f

 

Error Number:1105,State:2,Class:17

The Problem

The issue turned out to be that the database was a legacy database we received from another host. They had defined a database limit size in the SQL database it’s self. This caused the database to strop responding to DNN in a way we had never seen. After some time, the maintenance would drop the size of the database just below the limit and the DNN site would fire up. Until it reached the SQL database limit again.

Not likely to be a problem for many people, but something to check in the SQL dates settings.

The fix update

Increase or remove the size of the SQL database limit.

Google Analytics API Access V3

Accessing your Google Analytic Data via API

To allow a third party module or application to view and display your Google Analytics data for your website. You need to get a few things organised.

1. You need to have a Google Analytic account with your website registered.

Go to: http://www.google.com/analytics/   and follow their instructions to set up your URL under an account that you can manage and access with Admin permissions. We are not going to go through these steps here as it is a given that you will have this. Seek help from Google if you can’t manage.

 

2. Set up an API for your Google Analytics Account at the Google Developers Portal.

Go to: https://developers.google.com/  and login with your account.

To get started using Google Analytics API, you need to first create or select a project in the Google Developers Console and enable the API. Using this link guides you through the process and activates the Google Analytics API automatically.

Alternatively, you can activate the Google Analytics API yourself in the Developers Console by doing the following:

  1. Go to the Google Developers Console.
  2. Select a project, or create a new one.
  3. In the sidebar on the left, expand APIs & auth. Next, click APIs. Select the Enabled APIs link in the API section to see a list of all your enabled APIs. Make sure that the Google Analytics API is on the list of enabled APIs. If you have not enabled it, select the API from the list of APIs, then select the Enable API button for the API.
     Screenshot 2015 07 07 00 53 20
  4. In the sidebar on the left, select Credentials.
     Screenshot 2015 07 07 00 54 06

In either case, you end up on the Credentials page and can create your project’s credentials from here.

Create a client ID

From the Credentials page, click Create new Client ID under the OAuth heading to create your OAuth 2.0 credentials.

  1. For the APPLICATION TYPE select Service account.
  2. Click Create Client ID.
  3. For the KEY TYPE select P12 key. (The system will download a .P12 file. You will need this file to upload to the module)
  4. A dialog box appears. To proceed, click Okay, got it.

 

3. Add service account to Google Analytics account

The newly created service account will have an email address, <projectId>-<uniqueId>@developer.gserviceaccount.com; Use this email address to add a user to the Google analytics account you want to access via the API. For this tutorial only Read & Analyzepermissions are needed.

Select User Management (in the Analytics Admin)

Screenshot 2015 07 07 00 49 39

Enter the weird email address from the API credentials step above to give Read & Analyze permissions.

Screenshot 2015 07 07 00 51 16

 

In Summary

  1. You have created a Google Developer Account.
  2. Created an API and Given Permission to “Analytics API”
  3. You have Downloaded a P12 Credentials file.
  4. You have Authorised the associated weird google email address from the P12 account to have read permissions on your Analytics Account.

If you get all that right, then the module we use, will work to access your Google Analytics data from within your module.

 

DotNetNuke FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657'

After Upgrading DNN 7 and browsing to the ADMIN>Site Settings you find an error: A critical error has occurred. Object reference not set to an instance of an object.

FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657′

DNN file Helpers.dll

Error: File Management is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: (0): error CS1705: Assembly ‘DotNetNuke.Modules.DigitalAssets, Version=7.1.1.385, Culture=neutral, PublicKeyToken=null’ uses ‘Telerik.Web.UI, Version=2013.2.611.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4’ which has a higher version than referenced assembly ‘Telerik.Web.UI, Version=2013.1.403.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4’ —> System.Web.HttpCompileException: (0): error CS1705: Assembly ‘DotNetNuke.Modules.DigitalAssets, Version=7.1.1.385, Culture=neutral, PublicKeyToken=null’ uses ‘Telerik.Web.UI, Version=2013.2.611.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4’ which has a higher version than referenced assembly ‘Telerik.Web.UI, Version=2013.1.403.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4’ 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 DotNetNuke.UI.Modules.WebFormsModuleControlFactory.CreateModuleControl(TemplateControl containerControl, ModuleInfo moduleConfiguration) at DotNetNuke.UI.Modules.ModuleControlFactory.LoadModuleControl(TemplateControl containerControl, ModuleInfo moduleConfiguration) at DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl() — End of inner exception stack trace —

The problem

The problem relates to a missing file that can be updated to the website /bin folder. The file is part of a free library that can be found here: http://sourceforge.net/projects/filehelpers/files/File%20Helpers%20Downloads/Version%202.0.0/

The file you need is: FileHelpers.dll  front he 2.0 release from way back in 2010.

The Fix

Download the file directly here: https://www.dropbox.com/s/otusnlf1jmy9f6o/FileHelpers.dll?dl=0

Extract it into the /bin folder.

And save that to the /BIN folder in your DNN website, this will fix the issue and leave any third party modules that reference it working. File Helpers DLL in DNN

DotNetNuke DNN Spam Registrations Problem Fixed

DotNetNuke DNN Sites getting spam registrations – How to stop them

In recent weeks, many of our DNN websites have systematically been targeted for Spam New User Registrations. There has been some discussion around the how and why, and as much as we can tell, the problem is this:
1. Some script kiddy has bothered to write a bot that finds DNN websites. It is not even a good bot, because it is not capable of validating registrations to automated active email addresses. (If you are the creator of the bot… “YOU ARE DOING IT WRONG” as it is not going to bring the Google results you are looking for.)
2. The bot will attempt access to:  www.yoursite.com /?ctl=Register
?ctl=Register
3. This brings into play the default DNN registration process module.
4. This page is currently available if your site has either Public or Verified registrations enabled.
5. Tricks on derating the bot by raising the password complexity appeared to work a short time only.
6. Enabling the inbuilt Captcha is as good as useless, as almost any OCR application can break it.
7. A better simple solution is needed.
 

ReCaptcha is the FIX that is working well

Here at InteractiveWebs, we decided that we would enable Recapcha (a cleaver Google Initiative https://www.google.com/recaptcha/ ) that is harder to be machine broken, and test the results. We found that all the spam registrations stopped once Recaptcha was used.
To do this we created two Free DNN Modules to add Recaptcha to the URL that this bot is using to register on sites. The two modules are to support DNN 6.2 +  and 7x +.
The modules replace the standard captcha control to a recaptcha
From this:
DNNCaptcha
To this:
DNN Spam Registration Stop
This is a good link explaining how Recaptcha came into existence, and why it works well: https://www.youtube.com/watch?v=cQl6jUjFjp4

The Free Solution and Installing iWebs Regsiter

The free modules are available of download here: http://www.interactivewebs.com/DotNetNukeModules/ModuleDownloads.aspx
To install them and fix your site you will need to follow the instructions below:

Step 1 – Register your site for Recaptcah

Go to: https://www.google.com/recaptcha/intro/index.html  and register your domain, or domains. This will give you the ability to use recaptcha on your DNN sites on any domain you like.
DN Google Recaptcha

Step 2 – Copy the Public Key and Private Key for your Domain

You are going to need they keys that this site provides:
DNN Recaptcha Keys
Similar to these.
 

Step 3 – For you DNN site, Turn on the DNN Captcha system.

ADMIN>>SITE SETTINGS>> USER ACCOUNT SETTINGS>>  “Use CAPTCHA for registration” Ticked.

DNN Enable Captcha

Step 4 – Download and Install iWebs – Register

Install our “iwebs- register” module, making sure you pick the one that is for your DNN version.

  • DNN 6.2 And laters: iWebsRegister 62.6.3.0 PA.zip (at time of writing this)
  • DNN 7 and later:  iWebsRegister 72.7.1.0 PA.zip (at time of writing this)

Once installed, you need to add the module to a page as you would any other. We recommend adding it to it’s own page in the DNN Admin menu, and keeping the page Admin Only.
DNN Recaptcha Module Downlaod DNN Recaptcha Module

Step 5 – Configure the iWebs Register Module.

The module you are looking for is called: iWeb’s – Register – You can select the Settings from the module drop down as you would any other DNN module.
DNN Module Settings
 
Enter the Public Key and Private Keu information that you received from your Google Recaptcha registration of your domain. THEN SELECT UPDATE to save the information.
DNN Captcha Settings

Step 6 – Install the Register Control

After saving your public and private keys by clicking “update” you are ready to:
Click on the “Install Register Control”
This will inject the recaptcha setting into your website. So when you hit any registration URL (www.yoursite.com /?ctl=Register) you now get the recaptcah box.

Update to V2 of Recaptcha

Google has released what they call V2 of Recaptcha. We have update the module to support this. The process of updating to V2 goes like this.
1. By default, previously created recaptcha keys are V1. Any updated installs of our module will need to be put into V1 mode (in the settings) to keep working with your V1 keys that you have previously configured into the module. So after updating our module to the latest release, go into the module settings and enable V1 mode for the module to keep working.
2. V2 recaptcha is better than V1. So we would suggest that all users of the module update to V2. To do this, you update our module to the latest release, then go into the Google Recaptcha management page, and delete your domains security keys, then generate new keys for V2. They have instructions on that process, all be is hard to understand.
Once you have new V2 recaptcha keys, you update these new keys back into our module and ensure that the V1 mode is NOT enabled. The V2 recaptcha will then run on your site.

To Remove and Uninstall

Step 1. From the iwebs – Register module settings, click the “Restore Register Control”

DNN Remove Recaptcha

2. Uninstall the iwebs – Register module as you would any other DNN module.

 

Thoughts

This was a quick solution to some script kiddies attempt to attack DNN. I’m actually struggling to find the purpose (if you wrote the bot and you are reading this, I would love to hear why).  There is little threat by the registrations that I can find. More annoying that anything else. While Recaptcah can be broken, it would take some smarts or costs to use online services for the bot, so I suspect they will not bother and recaptcha will reign for this problem. In any case, if they spend some time and effort making the bot work for recaptcah, it is easy enough for us to implement some of the loads of other solutions available to stop them.

Donations

We included a donation button. If you find the solution, blog, research we did, modules we created and responses we provide to be helpful. Please consider throwing us a few $

DNN Popup Greeting–Kill it Good!

In the recent DNN 7 releases, they have unfortunately made by default a popup greeting after sign in, that in theory would drive clients to signup for their spam.

Problem is (like lots of recent DNN features) that the “tick to never show again” does not work, and in some really recent releases, the popup goes crazy and does not allow you to progress into the site.

In other words, they killed their own product with spam crap.

Easy fix. Open the file in the web root, called: Default.aspx.cs

Look for this line: ManageGettingStarted();

Just throw a // before it to comment it out.

Save and restart the IIS site. Should fix it fast and for good.

DotNetNuke can’t upgrade as Host Login does not work

DotNetNuke Upgrade Fails. Cannot login with Host.

If you are trying to upgrade your DotNetNuke site and found that you are presented with the Welcome to the DotNetNuke Upgrade Page, but can’t login with your Host (SuperUser) account.

image

DotNetNuke Upgrade – Version 06.02.07

Current Version – 06.02.05

Welcome to the DotNetNuke Upgrade Page.

The first step is to choose the language you wish to use for the Upgrade.

You are about to upgrade your website to a more recent version of the DotNetNuke application. Applying upgrades on a consistent basis is the best way to ensure that you are protecting the integrity of your investment and the security of your users and assets. Before proceeding with the automated upgrade process please ensure that:

  • you have made plans to first attempt this process in a staging environment
  • you have documented your current installation characteristics including doing research on the compatibility of any third party modules which you may be using
  • you have created the necessary backups of your environment so that you will be able to restore your website in the event of an unexpected upgrade failure.

Solution

Just simply close your browsers, or better yet, grab a browser that you have not accessed for some time. Then try hitting your URL and loggin in with the new browser session. While I did not bother to work out what the cache issue was, I did find it was cache related to an open browser session that was trying to authenticate to a previous session.

Easy when you know how~!

DotNetNuke – Could not load file or assembly 'Telerik.Web.UI' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.

image

After upgrading a DNN website, we received this error message.

The underlying cause of the problem is sloppy release version upgrades of the DNN core product.

The issue is that the release.config file in the update versions of DNN references older versions of the Telerik.Web.UI .dll file in the /bin folder of the install versions of DNN. This means that the settings in your newly updated web.config file are referencing an old version of the Telerik file.

The fix is easy

Right click on the Telerik.Web.UI.dll file in your sites /bin folder.

If the file is not there, then download the install version of your DNN site package from http://dotnetnuke.codeplex.com

Then extract the file to the /bin folder.

image

Look at the version number of the file.

Edit your web.config file to match this data:

image

Save and you are done.

DotNetNuke HTML Editor Background Black

When you get a black background in the HTML Editor.

image

The solution is easy.

Look for the file found here:

\Providers\HtmlEditorProviders\Telerik\Config\ConfigDefault.xml

Edit it to add this line:

<property name="CssFiles">~/Providers/HtmlEditorProviders/Telerik/Config/EditorCustom.css</property>

Looking like this:

image

Then edit this file:

\Providers\HtmlEditorProviders\Telerik\Config\EditorCustom.css

To look like this:

body
{
  background-color: white;
  background-image: url(image_path);
  color: black;
}

image

 

That’s about it.

DotNetNuke Can’t Login Index #: 0

The Problem

Index #: 0

image

Recently while working with a DotNetNuke website, we found that attempting to login to the site generated this error:

SQL Exception
Error Details
File 
Error   Index #: 0
Source: .Net SqlClient Data Provider
Class: 17
Number: 1105
Procedure: AddEventLog
Message: System.Data.SqlClient.SqlException: Could not allocate space for object ‘dbo.EventLog’.’PK_EventLogMaster’ in database ‘www.sitedatabase.com’ because the ‘PRIMARY’ filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, String spName, Object[] parameterValues) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.SqlDataProvider.AddLog(String logGUID, String logTypeKey, Int32 logUserID, String logUserName, Int32 logPortalID, String logPortalName, DateTime logCreateDate, String logServerName, String logProperties, Int32 logConfigID) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.DBLoggingProvider.WriteLog(LogQueueItem logQueueItem)

After a investigating the site and server we found that this was caused by the SQL server running out of room on the disk hosting the database connected to this DNN site.

The Solution

Free up more space on the SQL database disk.

DotNetNuke (dnn) jQuery problems admin menu

image

DotNetNuke jQuery Problems

Recently there was an update to jQuery that caused some problems with DotNetNuke. The problems include:

  • Strange or missing popup effects in custom jQuery modules
  • Admin menu hiding the menu items on Standard DNN Dark Knight Skin
  • Modules using jQuery failing to function as desired

The Problem

The problem is associated with some bugs in the jQuery released and hosted googleapis. The bugs are not related to DotNetNuke directly but the jQuery used in many instances of jQuery.

The Solution

The solution is an easy one. You just need to login to your DotNetNuke website with a Host Account, and modify the jQuery settings under the HOST / ADVANCED SETTINGS to a more recent and bug free version of jQuery UI.

 

image

Pasting this URL: https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js into the “Hosted jQuery UI URL" and ensuring the “Use Hosted jQuery Version” is ticked.

DotNetNuke Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid. EventID 1315

image

The Problem

We were receiving some really really strange behaviour with a dotnetnuke website.

The log files showed:

Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid. with EVENT ID 1315

 

The behaviour was this:

Login with Internet Explorer worked.

Login with some versions of firefox failed others worked

Login with Chrome failed.

When login failed, the browser would refresh and then show the page you were on before login.

Now in this instance we tried nearly everything we could think of. we tried different application pools different.net settings in IIS. and we hand we have a good idea of both server management and asp.net.

He also had is particularly confused that other DotNetNuke websites on this particular server were running just fine.

To cut a long story short the problem turned out to be very specific that site we were using.

Solution

We were in the process of migrating somebody else’s site to our servers, and we had exported their site and site content using the DotNetNuke template feature. Ordinarily this would work just fine, however in this case the user on the other website had defined the login.aspx page to have administrator only privileges. They had set the login link from the skin to automatically directed to the login.aspx webpage. In the site settings they had defined no page for the DotNetNuke login page.

What this meant was that as the user attempted login to the DotNetNuke website, the attempt to call the login.aspx page was made and the DotNetNuke automatic lockout protection system was called in to play. This lockout protection system will throw up the standard DotNetNuke login screen, if the page is either undefined or unavailable as with both the case with this website. It just so happens that this lockout protection system doesn’t work particularly well with chrome. That’s a whole not a problem and I don’t intend to solve.

The solution here was to login using Internet Explorer, enable permissions on the login.aspx page which in the DotNetNuke website was simply called login. I was then able to select this page as the login page in the admin/site settings page. Once the login page was correctly defined I then ensured that the login module that come standard with DotNetNuke was included on this page.

After making these changes to the settings, we stopped receiving the error message:

DotNetNuke Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid. EventID 1315

And the site continued to operate correctly from there. Now whilst this was a very particular configuration that was imported from an invalid template website. I have noticed that in forums discussing this event ID, nobody has come up with a solution suggesting to look for the validity of your login settings within DotNetNuke. Hence the reason for this blog post.

I hope that saves somebody a lot of time, as I blew nearly 2 days try to resolve this one.

If anybody needs assistance with this type of problem, please feel free to contact us on our website.

Upgrading Steps for DotNetNuke from DNN 4.x.x to DNN 6.x.x

image

Specifically we wanted to take a version of DotNetNuke from 4.9.1 to 6.1.3 today and actually found that it worked perfectly.

We did take some steps that helped a lot. This may be of value to some of you.

Before we Began

1. Backed up the entire file system for the website.

2. Backed up the database on SQL server for the site in question.

3. Ensured we had a HOST login account that worked.

4. Ensured the server we were running on (Windows 2008 R2) was patched and running .Net Framework version 3.5 SP1.

5. If your site is busy, work out a way to stop the traffic. One way is to add a portal alias, like test.domain.com in your DNN website. Setup a DNS entry to that test.domain.com points to the IP address of your DNN web server. In IIS, setup a Binding, so that test.domain.com will answer for your site.

Then access the site on test.domain.com and check you can login, etc.

Then remove the binding in IIS for www.domain.com (temporarily while you play upgrade).

This way, the site will not answer normal user access, but will answer you when you go to test.domain.com.

 

Update Path

We suggest the following table for upgrading your DNN Website.

Note: If you are upgrading a version prior to DNN 4.6.2, then you will need to manually update the web.config file. After this version the updates are automatic.

 

Steps On Upgrade

On Codeplex, Click on View All Downloads

image

Find the version for the next upgrade step from the table above. Then find the Version Upgrade download link.

image

Download the .zip file to your server. Then extract the contents directly over the existing website directory structure.

You will be asked to overwrite files, Tick yes to all.

You will be asked to overwrite folders, Tick Apply to all – And continue.

Once you have extracted, hit your website in a browser, and watch the upgrade happen before your eyes.

Repeat the steps of backing up after each successful update, and download the next update package and repeat the process.

 

Tricky Bits

If you are using the XML module, on a DNN version before 5.3.0, then you should obtain the latest update of the module before moving past 5.3.0.

If you have the Ifinity URL Master module. We suggest turning it off to upgrade.

 

After Upgrade

In IIS you will wan to move the website to a new application pool that is running .net 3.5 or 4.0 Integrated. You cannot share application pools with earlier DNN versions that run on .net 2.0.

Jump into the HOST settings, and configure things like, friendly URL’s, DNN Host Menu Options, and performance settings.

If you disabled bindings (from the initial steps 5 above) re-enable them and test access.

 

DotNetNuke Upgrade Service and Support

We offer a DotNetNuke Support Service that can include the upgrading of DNN websites for you. This is especially useful if you are not confident with either .net websites or IIS server administration.

We are happy to help you evaluate the upgrade path and potential problems. The cost of the service is in effect calculated at at an hourly estim
ate. It should be noted that if everything goes well, and trouble free, there there is at least 1 hours work in this upgrade, usually more as there are often little bugs to sort out.

Please contact us for support here: http://www.interactivewebs.com/Services/DotNetNukeSupport.aspx

Additional References

http://www.datasprings.com/resources/articles-information/dotnetnuke-articles/upgrading-dotnetnuke-4.9-to-dotnetnuke-6.0

Problem Upgrading for DNN 4.9.5 to DotNetNuke 6x

During an update from DNN 4.9.5 to DNN 6x we experienced:

All pages with HTML blank when logged out, but show this error logged in.

image

Error: Services is currently unavailable.DotNetNuke.Services.Exceptions.ModuleLoadException: The type initializer for ‘DotNetNuke.Modules.Html.DataProvider’ threw an exception. —> System.TypeInitializationException: The type initializer for ‘DotNetNuke.Modules.Html.DataProvider’ threw an exception. —> System.InvalidCastException: Unable to cast object of type ‘DotNetNuke.Modules.HTML.SqlDataProvider’ to type ‘DotNetNuke.Modules.Html.DataProvider’. at DotNetNuke.Modules.Html.DataProvider.CreateProvider() — End of inner exception stack trace — at DotNetNuke.Modules.Html.WorkflowStateController.GetWorkflows(Int32 PortalID) at DotNetNuke.Modules.Html.HtmlTextController.GetWorkflow(Int32 ModuleId, Int32 TabId, Int32 PortalId) at DotNetNuke.Modules.Html.HtmlModule.OnInit(EventArgs e) — End of inner exception stack trace —

Solution

In our case, the upgrade left 2 things behind that DNN 6 did not like.

  1. in the app_code directory, we deleted the ‘HTML’ folder (since it does not seem that it was in use anymore and was potentially conflicting with new html module code)
  2. in web.config, I removed the following line in the <Codesubdirectories> section
    <add directoryName="HTML" />

Save and you are done.

DotNetNuke 6 running in .Net 4.0 Server Error in '/' Application Version=3.5.0.0 Version=4.0.0.0

image

We had a requirement today to run a DotNetNuke Website in .Net 4.0 as some code we are using as part of the Microsoft CRM 2011 SDK require .Net 4.0.

Problem is that with many of the DotNetNuke websites, they have some references that will cause this error when you flip your website worker process to 4.0. in IIS.

image

This will give you an error that looks like this:

 

image

Generates an error:

Server Error in ‘/’ Application.


Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1703: An assembly with the same identity ‘System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ has already been imported. Try removing one of the duplicate references.
Source Error:

[No relevant source lines]

Source File: Line: 0

Show Detailed Compiler Output:

 

Interestingly too the reference to Version=4.0.0.0 initially said Version-3.5.0.0 until the second page refresh on the error.

The Problem

The problem in our case, and it may differ with others, related to an older file for Microsoft Ajax.

There is a file called: System.Web.Extensions.dll

in the \bin    folder.

We renamed this to: System.Web.Extensions.dll.bak

And our problem was fixed.

This is due to an older way that Microsoft handled Ajax vs the new way in .Net 4.0.

 

DotNetNuke Support Services

We do offer DotNetNuke support services and would be happy to assist others with this or other DNN problems that need professional support services with.

http://www.interactivewebs.com/Services/DotNetNukeSupport.aspx

Professional DotNetNuke Support Services

Professional Web Support Services

InteractiveWebs Support Services

image

At InteractiveWebs we have years of experience with DotNetNuke, with more published modules on SnowCovered than any other module developer in the store. (And we don’t publish all our modules.)

  • We have our own full time employed team of DNN developers.
  • We have our own full time employed Server Administrators.
  • We have our own Data Centres with our own equipment.
  • We have Years of Professional DotNetNuke Development Experience.

Quite literally there is no one who is more experienced with everything dotnetnuke.

We Offer Paid Support Services for DotNetNuke

We offer paid support services for DotNetNuke in an easy and covenant process.

  1. You advise us of the issue you are facing.
  2. We estimate an up front cost and advise you.
  3. If you decide to accept the quote, we will request that you buy the equivalent number of support tickets from our store.
  4. We will then complete the support job.

Purchasing Support Tickets

You only need to purchase support tickets if we have advise you how many tickets you will need to purchase upfront for the particular job.

You can purchase support tickets from our Support Store Here.

Supporting our Modules Free VS Charged

All of our DotNetNuke Modules are supported free of charge. We will work to resolve issues that our modules cause, or problems directly related to our modules not working as they should.

Sometimes we have clients who need our modules to be configured in a complex environment, or would like them to work with another conflicting product, or they may just want the people who made the module to set them up for them.

In these instances, we are happy to identify work that goes above an beyond “product support” and provide a quote for the additional work. You will find that we are very reasonable both about the price and what we cover for free.

Purchase Support Tickets Here

DotNetNuke Forum Module 05.00.02 The missing link!

DotNetNuke 05.06.03 Pain

If you look at the project downloads for dotnetnuke, you will notice that the forums module has the latest version as: 05.00.01

image

And if you click the link from within this page: http://www.dotnetnuke.com/Resources/Downloads/Projects-Downloads.aspx

05.00.01 is exactly what you get.

All sounds neat and tidy… right?

Not really, because if you install the latest version of DotNetNuke 05.06.03 (an important security release) you will kill your forums. Dead as dead.

And if you check around for an update of the forum module, you will not find one either in your Module Definitions, or in the DotNetNuke website. But keep looking to codeplex and you find this:

image

05.00.02 and what is strange, it is released before the DNN 05.06.03 update, like significantly before it… like 1 month.

This Forum Update is NEEDED if you want the forum module to work on DNN 05.06.03

http://dnnforum.codeplex.com/releases/view/67840

Release Notes

The same module as 5.0.1, except compiled against DotNetNuke 5.6.3 (and therefore is a minimum requirement) and the same version of Telerik (2011 SP2) included with it.
NOTE: This was compiled against, and for, 5.6.3 and is included with that release (Not released yet, as of June 12th (try 5 July).

All so confusing!

It waisted a lot of our time trying to work out what is going on. All we know is that DNN 05.06.03 broke a bunch of stuff, including the Forum Module. There is a fix but it is hidden on codeplex and is incorrectly referenced.

Very Unprofessional DNN Corp!

What you need to know

If you update to DNN 05.06.03 – your forums will die.

To fix it, download the hidden forum update 05.00.02 here: http://dnnforum.codeplex.com/releases/view/67840

Problem With DNN Blog Module 04.01.00 – 01

imageWe found an issue with what is the current release version of DotNetNuke Blog module 04.01.00 or 04.01.01.
First up, we don’t know what the version number should actually be, as the compiled version on the download is 04.01.00 but the source code is referenced as 04.01.01.
We presume there is some difference, but who knows what it is.

Anyway The Problem

The problem is that any forms on a page that run the blog module, will not allow form data to be validated. By validated, we are talking about ensuring a number is entered in a number field and text in a name filed etc.
The cause is the blog module is using an old ASP.Net 1.0 validation function. While it should be using ASP.NET 2.0 with the updated validation behaviours as found here:
http://msdn.microsoft.com/en-us/library/0ke7bxeh.aspx
With this mistake, if you use Page.Validate on ASP.NET 2.0, page validation groups are ignored and the controls are validated.
Why the BLOG module is even coded this way is quite questionable in any case. However without DNN being a true open source system, we have no ability to fix this were needed in the source.

Our solution

We fixed the problem and recompiled a version that people can download an use for free.
Blog_04.01.01_Install A
You can install this on top of any DNN blog module 04.01.00 and we would expect that future releases of the blog module will not be affected by this version we compiled. However they may well revert back to their junk code in the future releases.

Adding a Feedback Designer module to the page

Having installed the Module to your DNN site.

1. Login to your site with Host or Admin permissions.

2. Navigate to the page you wish to add a form to.

3. From the DNN module menu select FEEDBACK DESIGNER and the Pane Location.

4. Select ADD to add the module to the seelcted pane.

5. You will see a warning message advising that the module has yet to be configured. This message will only be seen one time.

6. From the Complete Feedback Designer menu on the module, select CONFIGURE MODULE.

7. You are now presented with the Module Menu. From her select the options you wish to edit by clicking the corresponding CLICK HERE.

DotNetNuke–Automatic Logout on Child Sites

It is a long running issue with modules, site and generally is caused by a user logging into a DotNetNuke website that then calls on a page (usually on a dotnetnuke child) website that references a separate .aspx web page.

Most often this is caused by the use of some java script that references external .aspx files in the script.

While in an ideal world this would not cause a logout issue for DNN users, especially admin users. It does and in our most recent experience with this was an updated website that used the cute soft “cute editor”.

This editor was working on dotnetnuke 4.9.5 sites, but due to it’s configuration and changes to the DotNetNuke 5x standards. No child portal would support it’s out of the box configuration after upgrading to dnn 5.6.0.

The fix was to throw it away and use the Telerik RAD editor. Not a bad option as far as the users are concerned, but disappointing that this apparent “bug” which we know could be addressed easily has never been identified and solved.

More time wasted!

DotNetNuke 5.6.0 Bug in Google Analytics Module No Hits

The Problem

We found that after updating to DNN 5.6.0 that the hits on Google Analytics dropped to 0 Page Views.
image
We looked at the reason behind the problem with 0 hits being reported. What we found was that the code that Google states we should use on the page (and was working fine in DNN 5.5.1) is now not valid in 5.6.0.
The tracking code for us looks like this:
 

<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘UA-1111111-1’]);
_gaq.push([‘_trackPageview’]);
(function() {
var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

When we looked at the rendered source code on the DNN 5.6.0 website, we found that the code was different in the line:

_gaq.push([‘_setAccount’, ‘UA-1111111-1‘]);

Note the “” marks around the ID Number.
So this was someone’s buggy code from DNN Corp.   In the file: SiteAnalytics.config file.
 

The Fix

To fix the problem, is as simple as undoing the buggy code.
in the root directory of your site, is a file called:  SiteAnalytics.config
Open this file in your text editor to reveal:

<?xml version=”1.0″ encoding=”utf-8″ ?>
<AnalyticsEngineConfig>
<Engines>
<AnalyticsEngine>
<EngineType>DotNetNuke.Services.Analytics.GoogleAnalyticsEngine, DotNetNuke</EngineType>
<ElementId>Head</ElementId>
<InjectTop>False</InjectTop>
<ScriptTemplate>
<![CDATA[
<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, [TRACKING_ID] ]);
_gaq.push([‘_trackPageview’]);
(function() {
var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
]]>
</ScriptTemplate>
</AnalyticsEngine>
</Engines>
</AnalyticsEngineConfig>

Just replace the two quotation marks highlighted above “” with single ‘’  one either side of the two [ ]and save the file. This will fix the buggy code.
So the line becomes:
_gaq.push([‘_setAccount’, [TRACKING_ID] ]);
 

Notes on DNN 5.6.1

Originally we suggested that the “” be taken out. We then found after updating the 5.6.1 that the removal of the “” broke that upgrade with regard to Google Analytics. So we have modified these notes to say to replace the “” with single ‘’.
 

Side Note

We stayed stable on DNN 4.9.5 for some time, enjoying not having DNN broken each time we updated. Finally we bit the bullet and with much pain, a Code Expert, a Server Admin Expert and the help of Hyper V rollback capability we updated to DNN 5.x.
Now we are finding ourselves back in the game of undoing crap code every time we run a DNN update. Yes there are some great shiny new features, but we just blew 2 man days working out bugs in the UrlRewriter system and now this analytics bug.
This is disappointing and annoying to again be on this roundabout!

SiteAnalytics – Download File

 

DotNetNuke PortalAliasInfo objPortalAliasInfo) at DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest

Problem with Outlook Sync

clip_image002

Task ‘SharePoint’ reported error 0x80040102 Outlook cannot connect to the SharePoint List.

We experienced some errors with our DNN website recently. The errors were and interesting one and a combination of a few things. Actually took some work to understand.

The problem we noticed was that in the Log Viewer, we found many General Exception Errors:

AssemblyVersion: 5.6.0
PortalID: -1
PortalName:
UserID: -1
UserName:
ActiveTabID: -1
ActiveTabName:
RawURL: /_vti_bin/lists.asmx
AbsoluteURL: /_vti_bin/lists.asmx
AbsoluteURLReferrer:
UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
ExceptionGUID: bla
InnerException: Unhandled Error:
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: DotNetNuke.Entities.Portals.PortalSettings..ctor
StackTrace:
Message: System.Exception: Unhandled Error: —> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Entities.Portals.PortalSettings..ctor(Int32 tabID, PortalAliasInfo objPortalAliasInfo) at DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest(Object s, EventArgs e) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) — End of inner exception stack trace —
Source: SERVER NAME

In the server Event Log, we found

Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 11/24/2010 11:43:47 PM
Event time (UTC): 11/24/2010 12:43:47 PM
Event ID: 6c188de9427b4941aa187a2ee4e7b173
Event sequence: 388
Event occurrence: 5
Event detail code: 0
 
Application information:
    Application domain: /LM/W3SVC/3/ROOT-1-129350748043347324
    Trust level: Full
    Application Virtual Path: /
    Application Path: C:\inetpub\wwwroot\localpath
    Machine name: SERVER
 
Process information:
    Process ID: 3460
    Process name: w3wp.exe
    Account name: NT AUTHORITY\NETWORK SERVICE
 
Exception information:
    Exception type: NullReferenceException
    Exception message: Object reference not set to an instance of an object.
 
Request information:
    Request URL: http://www.interactivewebs.com.au/_vti_bin/lists.asmx
    Request path: /_vti_bin/lists.asmx
    User host address: 66.34.204.111
    User: 
    Is authenticated: False
    Authentication Type: 
    Thread account name: NT AUTHORITY\NETWORK SERVICE
 
Thread information:
    Thread ID: 12
    Thread account name: NT AUTHORITY\NETWORK SERVICE
    Is impersonating: False
    Stack trace:    at DotNetNuke.Entities.Portals.PortalSettings..ctor(Int32 tabID, PortalAliasInfo objPortalAliasInfo)
   at DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest(Object s, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
 
 
Custom event details:

The common thread here

This URL http://www.interactivewebs.com.au/_vti_bin/lists.asmx

was failing with an error looking like this.

image

Now we realised that this URL to hit the lists.asmx file, is something that should relate to an Outlook Service Contact Web Service Extension. This we know to be associated with one of our own DotNetNuke modules called, Outlook Sync.

This outlook sync (cool module) takes reference to the Outlook Web Service Extension to make a SharePoint style connection of DotNetNuke Contacts into outlook. Allowing you to make a contact list in outlook of your DotNetNuke clients.

The issue is that DotNetNuke is not allowing (under some of the new URL handling technology) for the URL of the web service to be hit.

We found that when testing the install of the module on a new DNN 5.6.0 website, that a portal alias was automatically added to the primary portal that included this path. i.e.

domain.com/_vti_bin/lists.asmx

or

www.domain.com/_vti_bin/lists.asmx

This turned out to be the solution for our site too. By adding the alias to the Admin / Other Settings / Portal Aliases – list of alias addresses.

This then allowed the web url /_vti_bin/lists.asmx to be hit and return the default page for this url:

image

After providing this, the errors were all gone, and the Outlook Sync module worked again!

It turns out that there is a better solution

 

Because the error is actually caused by some bugs in the URL rewriter in DNN.  In the Web.config. There is a reference to the URL rewriter. It is responsible for generating the error above.

This line is found in the web.config under the system.webserver section of the config file.

<add name="UrlRewrite" type="DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules" preCondition="managedHandler" />

 

We have a line relating to the outlook sync

<add name="OutlookSync" type="iwebs.HttpModules.OutlookSyncHttpModule, App_SubCode_Out
lookSyncHttpModule" preCondition="managedHandler"/>

If you ensure that the outlook sync line appears before the URLReweite line in the web.config. Then this will fix the error too, and make it not necessary to use the alias.

We believe this is a bug in the later version of the DNN URLRewriter.

DotNetNuke DNN An Error Has Occurred When Attempting To Save The File Forum Mdoule

When trying to add a file attachment to the DotNetNuke forum module, we received an error that looked like this.

An Error Has Occurred When Attempting To Save The File C:\webroot\site\site.com\wwwroot\Portals\0\Forums\Attachments\imge.jpg. Please Contact Your Hosting Provider To Ensure The Appropriate Security Settings Have Been Enabled On The Server.

We stuffed around for a longer than normal time looking to fix this. We played with permissions on the website host server and folders, as in most of the forum posts about this error we found, they were all blindly looking at that as the problem.

Solution

Check the folder exists – Look in the folder structure to see if the /Forums/Attachments/ folder is actually there.

Create it if is is not – In the website File Manager (ie under the Admin / File Manager DNN menu, create the Attachments folder. ensuring that you set permissions in that file manager to allow all registered users to upload.

Remove then recreate file upload permissions – In the forum administrator area, under the file Attachment Manager, uncheck, then update, then recheck and update the “Enable File Attachment” option.

image

Aldo remember to check the the Attachments Path is the one you created earlier.

For us, that did the trick.

HTML Module requires updating. Install "HTML 040802k PA.zip

Problem

You are running the InteractiveWebs DNN word editor on a website. You upgrade your DNN site (usually past an early DNN 5 release) to a later DNN 5 release.

After updating your DNN website, the word editor fails to publish and reports:

  • HTML Module requires updating. Install ‘HTML 040802k PA.zip’ or higher to your website to re-enable word editing’.

If you browse to:  www.yourwebsite.com//desktopmodules/html/publishtoweb.asmx

You will see:

The type ‘PublishToWeb’ is ambiguous: it could come from assembly ‘C:\Inetpub\vhosts\yourwebsite.com\httpdocs\bin\App_SubCode_HTMLService.DLL’ or from assembly ‘C:\Inetpub\vhosts\yourwebsite.com\httpdocs\bin\DotNetNuke.Modules.Html.DLL’. Please specify the assembly explicitly in the type name.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The type ‘PublishToWeb’ is ambiguous: it could come from assembly ‘C:\Inetpub\vhosts\arctic-it.com\httpdocs\bin\App_SubCode_HTMLService.DLL’ or from assembly ‘C:\Inetpub\vhosts\arctic-it.com\httpdocs\bin\DotNetNuke.Modules.Html.DLL’. Please specify the assembly explicitly in the type name.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[HttpException (0x80004005): The type ‘PublishToWeb’ is ambiguous: it could come from assembly ‘C:\Inetpub\vhosts\yourwebsite.com\httpdocs\bin\App_SubCode_HTMLService.DLL’ or from assembly ‘C:\Inetpub\vhosts\yourwebsite.com\httpdocs\bin\DotNetNuke.Modules.Html.DLL’. Please specify the assembly explicitly in the type name.]

   System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase) +325

System.Web.UI.SimpleWebHandlerParser.GetType(String typeName) +126

System.Web.UI.SimpleWebHandlerParser.GetTypeToCache(Assembly builtAssembly) +65

   System.Web.Compilation.SimpleHandlerBuildProvider.GetGeneratedType(CompilerResults results) +51

   System.Web.Compilation.BuildProvider.CreateBuildResult(CompilerResults results) +45

   System.Web.Compilation.BuildProvider.GetBuildResult(CompilerResults results) +13

   System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +8732935

   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +261

   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101

   System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +83

   System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath) +10

   System.Web.UI.WebServiceParser.GetCompiledType(String inputFile, HttpContext context) +43

   System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +180

   System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) +47

   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +193

   System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +93

   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Solution

The solution is simple.

In the \bin directory on your DNN website is a file called: App_SubCode_HTMLService.dll

After backing up this file (just to be safe), then delete the file App_SubCode_HTMLService.dll from the website. This should fix the issue.

Digg This

DotNetNuke Performance Settings

Much has been written about the DotNetNuke performance settings, and well frankly the is a lot of bad information running around the web about what all the settings mean and do.

I’m not about to jump into a discussion, but rather tell you what we believe are the best settings for a public facing website hosted from a Windows 2008 servers without a proxy.

First of all you will need to determine if the web server IIS settings have been configured to compress data servers from your site. This is easy.

1. Login as host and look in the Performance Settings for the “Compression Setting” and ensure it is turned off.

image

2. Then visit this site: http://www.seoconsultants.com/tools/compression 

Enter your URL of the website you are playing with, and check compression. The result will look like this, if your content is uncompressed.

image

or this if it is compressed.

image

Take not of this for later.

3. Go back to your site settings and set them to look like this:

image DNN 4x

image DNN 5x

4. Depending on your compression test above set your site compression settings.

If you site reported: Uncompressed
image

If your site reported: Compressed (anyting)

image

The idea is that, if your IIS is already compressing content, you do not want your DNN compression settings on. It will only slow down performance, however if your IIS is not handling compression, you will find that performance is much improved with compression on.

Summary

These settings will give you good speed performance, but more importantly will not cause cache problems where users updated content but cannot see the changes that they have made. This is a big issued with CMS system that cache in the wrong way, and is a complaint of many DNN users.

Digg This

Site Settings is currently unavailable – Language Not Available

There are a few people around the net with this problem.

Site Settings
Error     Error: Site Settings is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: Cannot insert the value NULL into column ‘DefaultLanguage’, table ‘tendollar.dbo.tdb_Portals’; column does not allow nulls. UPDATE fails. The statement has been terminated. —> System.Data.SqlClient.SqlException: Cannot insert the value NULL into column ‘DefaultLanguage’, table ‘tendollar.dbo.tdb_Portals’; column does not allow nulls. UPDATE fails. The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at
DotNetNuke Product:          DotNetNuke Community Edition
The DotNetNuke version you are running     05.01.02 (51)
We have posted a solution on our DotNetNuke Knowledge Base website. Search on “Site Settings is currently unavailable”

DotNetNuke DNN Exception Details: System.Web.HttpException: Server cannot modify cookies after HTTP headers have been sent.

We had a client with this error in their DotNetNuke Website:
Server Error in ‘/’ Application.
——————————————————————————–
Server cannot modify cookies after HTTP headers have been sent.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Server cannot modify cookies after HTTP headers have been sent.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 
Stack Trace:
[HttpException (0x80004005): Server cannot modify cookies after HTTP headers have been sent.]
   System.Web.HttpResponse.BeforeCookieCollectionChange() +8710212
   System.Web.HttpCookieCollection.Add(HttpCookie cookie) +24
   System.Web.Security.AnonymousIdentificationModule.OnEnter(Object source, EventArgs eventArgs) +1792
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
For DNN the problem turned out to be in the Event Log Purge Schedule.
Under Host Settings, login and locate the history of the scheduled item. Check to see if the history shows a fail and shows this errir.
DotNetNuke.Services.Log.EventLog.PurgeLogBuffer, DOTNETNUKE 
EXCEPTION: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: Index at Microsoft.VisualBasic.Collection.FastList.get_Item(Int32 Index) at Microsoft.VisualBasic.Collection.get_Item(Int32 Index) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.DBLoggingProvider.PurgeLogBuffer() at DotNetNuke.Services.Log.EventLog.PurgeLogBuffer.DoWork()
. If it does then apply this.
Turn off this item but untickign the Yes option.
Then go to the HOST / Settings Page and restart the application.
Return to the schedule and re-enable the purge log buffer with it set to perform every 3 min. Check that the schedule process finishes.