Blog Home  Home Feed your aggregator (RSS 2.0)  
Venexus DotNetNuke Blog - December, 2005
DotNetNuke Articles, Code Snippets, Errors, and News
 
 Thursday, December 29, 2005

Server Error in '/' Application.

Object reference not set to an instance of an object.

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.NullReferenceException: Object reference not set to an instance of an object.

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:

[NullReferenceException: Object reference not set to an instance of an object.]
   DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest(Object s, EventArgs e) +702
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64


Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

I have DNN 4.0.2 running on my laptop and frequently get this error. I started getting this error with the first version of DNN 4 and have hoped with each release that it would go away without any luck. I know of another person who is experiencing this error as well. Until I find the solution, this is a placeholder...

Thursday, December 29, 2005 8:35:09 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Tuesday, December 27, 2005

One of the first new features of DNN 4 I noticed was the ability to change the Module Title without having to go into Module Settings.

Hovering over the Module Title shows that it is editable:

 

Clicking on the Module Title allows you to edit the Title:

 

The Title is changed once the focus is moved off of the Module Title:

 

Even though a small change, this will undoubtedly save time by not requiring the extra clicks to get into the Module Settings. Very handy!

Tuesday, December 27, 2005 11:12:29 AM (US Eastern Standard Time, UTC-05:00)  #       | 
 Monday, December 26, 2005

In Managing an Open Source Project for DotNetNuke you will find an interesting insight into the development of the DNN Forums Module Project from Chris Paterra. This is a great read for those who want to take a glimpse of what is involved with managing an open-source project.

Of particular interest, his comparisons between commercial and open-source development, provide an indepth look at managing the development of the Forums module.

Over the next few weeks, we will be digging into the source of this project (3.2.1) to make changes for a client. I look forward to reviewing the code and seeing how all the pieces work together. Stay tuned... ;-)


 

Monday, December 26, 2005 10:23:22 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, December 23, 2005

DNN FIND Spider version 0.2 was built this morning after a successful nightly crawl test last night.


 
DNN FIND Spider (DNNFS) is currently a standalone VB.Net application that spiders the web. We are using the spider to crawl DotNetNuke sites for inclusion in the DNN FIND index. Currently the DNN FIND index is comprised of data collected from RSS feeds and the DNNFS. If you have a feed or site that you would like to have aggregated or crawled, please let us know: support at DNN FIND dot com.


Current Features:

  • Written in VB.Net
  • Stores data in MS SQL Server
  • Multi-threaded spider
  • Obeys robots.txt
  • Obeys meta robots tags
  • Stores HTML and parsed (HTML removed) data
  • Site specific crawls


Direction:
So many crawlers, so little time! The goal is to get all of the other VBScript and Visual Basic (not .net) crawlers/spiders we have built into a single mega .Net spider. Porting the features and functionality of other crawlers we have, like TIC and TXS, is a first priority. However, the first objective is to make DNNFS to be a "global" crawler, rather than just a site specific crawler.


Currently DNNFS will crawl a single domain at a time, which is great for adding TIC features like HTTP Header Status reports for non-200 responses, giving a detailed view of problems on the website. In the hands of a DNN site operator, this could be used to view issues on the site that might otherwise be unknown without digging through web logs.


But, the work to be done next involves porting code to utilize a central database queue. By doing so, it will allow for multiple spiders to be setup on multiple servers, each talking back to the central queue for the next URL to be processed. Also, the queue can be manipulated by URL importance instead of relying on First In First Out queueing. With TIC, a global crawler, we have Domain AND URL importance affecting the queue. While a crawl is happening, an algorithm computes the "importance" of a URL based upon the importance of the domain and keywords found within the document. The more documents found on a site with related keywords, the higher the domain importance, which results in a higher URL importance during crawl time. However, this comes with a performance issue and may best be added as a backend process that updates the queue continuously. Most DNN operators would not need such features nor do they have sites to be crawled that have hundreds of thousands of pages like some of the sites we host. However, some of them might have large sites and/or would be interested in contributing their crawl data, which begs the question of developing a thin client for DNN operators.


Definite Features to be included in future releases:

  • XML document support for crawl updates (similar to how Google sitemaps work)
  • RSS support for site update notifications
  • Non-200 status header response reporting
  • Global crawls
  • Central queue processing
  • Multiple crawler support


Ideas we are kicking around:

  • A distributed thin client for DNN operators
  • DNNFS as a website stress tester? It would be easy to increase the number of threads by x fold to make a stress tester.
  • Web services for remote queries

If anyone has any features, functionalities, or ideas that can be added to DNNFS that would help the DNN community, please let us know: support at DNN FIND dot com.

Friday, December 23, 2005 12:12:58 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Tuesday, December 20, 2005

We were experiencing the following error 4 times per minute.

Scheduler Exception :

AssemblyVersion: -1
Method:
FileName:
FileLineNumber: -1
FileColumnNumber: -1
PortalID: -1
PortalName:
UserID: -1
UserName:
ActiveTabID: -1
ActiveTabName:
AbsoluteURL:
AbsoluteURLReferrer:
ExceptionGUID:
DefaultDataProvider:
InnerException: Add failed. Duplicate key value supplied.
Message: System.ArgumentException: Add failed. Duplicate key value supplied. at Microsoft.VisualBasic.Collection.Add(Object Item, String Key, Object Before, Object After) at DotNetNuke.Services.Scheduling.DNNScheduling.CoreScheduler.AddToScheduleInProgress(ScheduleHistoryItem objScheduleHistoryItem) at DotNetNuke.Services.Scheduling.DNNScheduling.CoreScheduler.WorkStarted(SchedulerClient& objSchedulerClient)
StackTrace:
Source:

Environment:

DotNetNuke Version: 3.1.1

Data Provider: SqlDataProvider

.NET Framework: 1.1.4322.2032

So, I went into Host > Schedule and started disabling each Scheduled Task until I found the culprit. This was pretty easy to figure out because the only non-core scheduled tasks that was new was the following:

UserPaymentTools.BuyNow.PurgeShoppingCart, UserPaymentTools.BuyNow

AND

UserPaymentTools.BuyNow.ServicePayments, UserPaymentTools.BuyNow

I tried every combination and each task created 2 scheduler exceptions per minute, despite having a frequency of 1 and 3 hours. I have disabled both task and no longer experience the error. I plan on following up with the developer of this module and will post my comments in a separate entry as this is the second major issue I have experienced from 2 modules I have purchased from this individual and did not receive a response from the first one...

Tuesday, December 20, 2005 8:17:14 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Monday, December 19, 2005

I recently cleaned up our DNN default.aspx page by removing several meta tags. Many of the meta tags in default.aspx are useless and do nothing but make the payload bigger and pushes the main content further down the page. One of the meta tags removed was <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">. By default, all pages on a DNN site are Indexable and Crawlable. Search engines do not need to be told to index or follow a page. They will do this anyway as it is their nature. I suggest using this meta tag only if you do NOT want search engines to index or follow your page. However, it is important that if you modify default.aspx, make sure you set page to have read only access so that future DNN releases do not overwrite your "custom" page. 

Now, we actually have a need for a Robots Meta Tag on a public page that we do not want crawled or index. So, to add the meta tag back in just for the page we do not want crawled or indexed, simply go into the Page Settings and expand Advanced Settings. In the Page Header Tags textarea, add <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

Some other examples:
<meta name="robots" content="noindex,follow">
- this tells the search engines crawlers/spiders to not index the page but to follow any links that are on the page for possible indexing.
<meta name="robots" content="index,nofollow"> - this tells the search engines crawlers/spiders to index ths page but not to crawl any of the links on the page.

Monday, December 19, 2005 11:42:52 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Saturday, December 17, 2005

I recently posted some SQL statements on updating PageHeadText in the Tabs table for DotNetNuke and Google Analytics. I recently updated the SQL statement to exclude any deleted tabs.

UPDATE Tabs SET PageHeadText = '<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
           </script>
           <script type="text/javascript">
                _uacct = "UA-xxxxxx-x";
                urchinTracker();
           </script>'
 WHERE (PortalID = 0) AND (ParentID <> '38') AND (IsDeleted = 0)

This will automatically change all pages for the portal to include the Google Urchin JavaScript into the page head. This will also filter out certain pages. For example 38, will filter out any Admin pages in the database for our setup. IsDeleted = 0 makes sure the page is not deleted. This is alot quicker, especially for portals that have thousands of pages, than adding a module to each page or updating each page individually in the Page Settings > Advanced Settings > Page Header Tags.

Saturday, December 17, 2005 8:37:07 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, December 16, 2005

If you try to run DNN 3.X using .Net 1.1 AND DNN 4.x using .Net 2.0, make sure you put the sites into separate application pools if they are running on the same server. Not doing so will result in the following error in the event log:

It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process.

In versions of IIS before 6.0, each application runs in a seperate process during run time. IIS 6 brings the ability to run spearate application pools and applications that are assigned to different application pools never run in the same process. So this was all new to me ;-)

So, to change it is quite simple...

To create a pool designation in IIS 6.0

  1. Open the IIS management console and expand the local computer by clicking the plus sign.
  2. Right-click the Application Pools folder, point to New, and then click Application Pool. The Add New Application Pool dialog box appears.
  3. Enter the new pool designation in the Application pool text box, and then click OK.

To assign a pool designation to an ASP.NET application in IIS 6.0

  1. Open the IIS management console, expand the local computer by clicking the plus sign, and navigate to the folder that contains the ASP.NET application.
  2. Right-click the application and then click Properties. The application's properties dialog box appears.
  3. On the Directory tab, select the desired pool designation from the Application Pool list.

Configuring an ASP.NET Application for an ASP.NET Version

Friday, December 16, 2005 10:30:08 AM (US Eastern Standard Time, UTC-05:00)  #       | 
 Wednesday, December 14, 2005

I had someone ask me this question the other day...I have been looking for a good DotNetNuke blog module, and have tested the core DNN Blog module project, and have yet to find one that really has all of the features and functionality I need.

The requirements that I always seem to find missing in a DNN blog modules are as follows:

  1. Categories - I need to be able to categorize my postings. I do not have time to have humpteen dozen different blogs on seperate pages. Categoizing helps with search engine optimization and overall blog navigation/organization.
  2. Search Engine Friendly URLs - I don't like, nor do most search engines like, parameterized query URLs. dasBlog does a great job with allowing SE friendly URLs, just checkout the URL for this post: http://dnnblog.venexus.com/Why+Are+You+Using+DasBlog+For+A+DotNetNuke+Blog.aspx 
  3. RSS Enclosures - Adding audio/video to a blog is very cool...which reminds me I should start doing some of that with this blog ;-)

Anyone know of a good DNN blog module that will do the above???

Until I find the right DNN module, I am going to stick with dasBlog. dasBlog does all of the above items, plus works very well. I would prefer to be able to use a DNN skin than the builtin templates, nor do I have the time for developing a new dasBlog template, but everything else works nicely. I would love to see someone port dasBlog to a DNN module.

On a security note, I ran across this post about a dasBlog security issue. I have upgraded this blog to use .Net 2.0 and have not found any issues with the upgrade so far.

Wednesday, December 14, 2005 1:10:28 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Tuesday, December 13, 2005

InnerException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 ("@rawQuery"): Data type 0xE7 has an invalid data length or metadata length.

This is here as a placeholder because I have a feeling this is going to come up agaqin soon...We experieced this issue with a DNN module that called a stored proc on a database that was not located on the same server as where the DNN installation lived and a different database than the DNN database.

0xE7 = 231, which is correct for nvarchar. Running SQL Profiler, no trace of the stored proc being run was found.

**NOTE** The stored procedure that is being called is NOT in the DotNetNuke database.

We tried the following cases with interesting results:

Error Case:

Server A (Windows 2003 Standard running IIS), connecting to Server B (remote SQL Server 2005 database). ERROR = TRUE

Test Case 1:

Server A (Windows 2003 Enterprise running IIS), connecting to local SQL Server 2000  database. ERROR = FALSE

Test Case 2:

Server C (Windows 2003 Standard running IIS), connecting to local SQL Server 2000  database. ERROR = FALSE

Test Case 3:

Server A (Windows 2003 Enterprise running IIS), connecting to Server C (remote SQL Server 2000  database). ERROR = FALSE

Test Case 4:

Server C (Windows 2003 Standard running IIS), connecting to Server B (remote SQL Server 2005 database). ERROR = TRUE

Test Case 5:

Server D (Windows 2003 Standard running IIS), connecting to local SQL Server 2005  database. ERROR = TRUE

See the pattern? So, this definitely points to an SQL Server 2005 issue. This lead us down the route of changing the provider to see if the module would work. And guess what? It did. The error goes away. WTF? No time to run a packet sniffer. I am logging this here as a great mystery to solve some other time.


 Update 1/9/2005:

During validation of a byte-ordered user-defined type passed through RPC, user-defined type validation performs de-serialization/re-serialization of the user-defined type and requires that the resulting bytes be exactly the same as the original. If the validation fails, you will see the error:

"System.Data.SqlClient.SqlException, Incoming TDS RPC protocol stream is incorrect. Parameter 1 ("<ParameterName>"): The supplied value is not a valid instance of data type <TypeName>. Check the source data for invalid values."  - Reference: http://support.microsoft.com/default.aspx?scid=kb;en-us;910228  in section 4.1.4
Tuesday, December 13, 2005 3:35:40 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Monday, December 12, 2005

DotNetNuke Search Engine...I noticed that there is now a page on the DotNetNuke site for the core DNN Search Project. I have not had a chance to explore much of the forum they provide on the page, but most of what I see are questions about how to use the module, instead of nitty gritty application details. I hope to find more details about any changes that took place between the previous version and DNN 4 and post them here for reference.

In the meatime, I am still working on the DotNetNuke Spider and Fulltext Search module. Unfortunately, several other projects have forced this on the back burner, but I try to squeeze in a line or two of code every night...

The DNN Spider will have the following features:

  • Multi-threaded crawling
  • Parsing ability

My biggest issue with other crawlers I have played with is their speed for larger websites or crawling patterns. I hope to provide a solution that alleviates any performance issues by utlizing a central database for queue processing. I'll keep you posted as it progresses...

DNN FIND - DotNetNuke Fulltext Indexing Based Search

The DNN FIND Module will have the following features:

  • Portal specific search
  • Global search via web services
  • Fulltext Indexing of DNN Spider results
  • Noise word filtering
  • Supports "+" searches
  • Supports "-" searches
  • Double quoted phrases
  • LSI keyword augmented results
  • User interactive ranking algorithm

An example of the fulltext search module can be found at DNN FIND. Please note that this module is still in development and that not all features are available in this example.

Stay tuned for more...

Monday, December 12, 2005 11:57:21 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Sunday, December 11, 2005

I am getting the following error randomly on a localhost install of DNN on my laptop. Restarting IIS fixes the problem until it randomly occurs again.

Server Error in '/' Application.

Object reference not set to an instance of an object.

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.NullReferenceException: Object reference not set to an instance of an object.

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:

[NullReferenceException: Object reference not set to an instance of an object.]
   DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest(Object s, EventArgs e) +1123
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

 

This is a placeholder until I find the solution....

Not to self: Is this a session timeout issue? Seems like it happens after a long duration has passed before returning to localhost. Dig through the logs and look ;-)

Sunday, December 11, 2005 2:49:47 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, December 09, 2005

Lee Sykes of DNN Creative informed me this morning that there is an issue with modules that dynamically change the title.

Line 50 in CDefault.vb is commented out:

'Public Title As String = ""

This will cause many modules that use this property of CDefault to dynamically set the page title to break.

Source

I know this will cause some errors. I have several modules that alter the page title based on content for search engine optimization. This will definitley delay any upgrade we do from DNN 3 to DNN 4 in our production environment if it takes longer than 1 month for the next patch/release. I will post any updates here.

 

Friday, December 09, 2005 10:59:38 AM (US Eastern Standard Time, UTC-05:00)  #       | 
 Thursday, December 08, 2005

I successfully updated our development environment with DNN 4.0.1.

See below:

Current Assembly Version: 04.00.01

Current Database Version: 04.00.00



Upgrade Status Report

00:00:00.031 - Upgrading to Version: 4.0.1
00:00:00.750 - Performing General Upgrades
00:00:01.140 - Installing Module File D:\DNN4.0\Install\Module\Announcements.zip:
00:00:01.531 - Installing Module File D:\DNN4.0\Install\Module\Announcements_3.1_Install.zip:
00:00:01.968 - Installing Module File D:\DNN4.0\Install\Module\Contacts_3.1_Install.zip:
00:00:02.203 - Installing Module File D:\DNN4.0\Install\Module\Discussions_3.1_Install.zip:
00:00:02.500 - Installing Module File D:\DNN4.0\Install\Module\Documents_3.1_Install.zip:
00:00:02.750 - Installing Module File D:\DNN4.0\Install\Module\Events_3.1_Install.zip:
00:00:03.140 - Installing Module File D:\DNN4.0\Install\Module\FAQs_3.1_Install.zip:
00:00:03.375 - Installing Module File D:\DNN4.0\Install\Module\Feedback_3.1_Install.zip:
00:00:03.546 - Installing Module File D:\DNN4.0\Install\Module\HTML_3.1_Install.zip:
00:00:03.765 - Installing Module File D:\DNN4.0\Install\Module\IFrame_3.1_Install.zip:
00:00:03.968 - Installing Module File D:\DNN4.0\Install\Module\Image_3.1_Install.zip:
00:00:04.125 - Installing Module File D:\DNN4.0\Install\Module\Links_3.1_Install.zip:
00:00:04.453 - Installing Module File D:\DNN4.0\Install\Module\NewsFeeds_3.1_Install.zip:
00:00:04.625 - Installing Module File D:\DNN4.0\Install\Module\Survey_3.1_Install.zip:
00:00:06.875 - Installing Module File D:\DNN4.0\Install\Module\UserDefinedTable_3.1_Install.zip:
00:00:08.406 - Installing Module File D:\DNN4.0\Install\Module\UsersOnline_3.1_Install.zip:
00:00:08.797 - Installing Module File D:\DNN4.0\Install\Module\XML_3.1_Install.zip:

Upgrade Complete

Click Here To Access Your Portal

 

Our Development Environment    

Web Server:
Dell 1550 Dual 1 Ghz processors with 2 Gb RAM
Windows 2003 Stadard Edition with Service Pack 1

Database Server:
Dell 7150 Quad Itanium processors with 12 Gb RAM
Windows 2003 Enterprise Edition with Service Pack 1 (64 bit)
Microsoft SQL Server 2005 Enterprise Edition (64 bit)

DotNetNuke:
DotNetNuke Version: 4.0.1
Data Provider: SqlDataProvider
.NET Framework: 2.0.50727.42
ASP.NET Identity: NT AUTHORITY\NETWORK SERVICE

I have confirmed that the DNN Search module errors I had experieced in DNN 4.0.0 have been fixed. As commented on the DNN 4.0 and Search Module Errors post by Cathal of the DNN Core Team: "this was caused by an error with the businesscontroller interface. It's been fixed in dnn4.01 which has been released".

 

Thursday, December 08, 2005 11:55:04 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 

DotNetNuke released version 3.2.1 and 4.0.1 yesterday as stabilization releases.

From what I understand, this release includes:

  • Meduim Trust issues fixed within MS MemberRole
  • FreeTextBox fixes
  • More documentation

For more information and the downloads: Click Here

I did not seeing anything concerning a fix for DNN Search Module. I will make a post here if this has been fixed...UPDATE: See Comments Here

 

I will be upgrading my DNN 4.0.0 installation this weekend and will post the results. For those who are interested in upgrading their DNN 3.x site, DO NOT extract the 4.x version on top of the 3.x version!

Thursday, December 08, 2005 6:41:59 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Wednesday, December 07, 2005

I decided that I would try to make our upgrade from DNN 3.1 to DNN 4 as painful as possible by throwing Active Directory into the mix. I am exploring all methods, including the possiblity of using a custom method for AD authentication and DNN synchronization. So, this will be my placeholder for any valuable information/code tidbits...

Methods for Active Directory - Here they provide several methods for managing your Active Directory database via ASP.Net code. They cover querying user information using System.DirectoryServices, changing user accounts, and group management.

Active Directory Module - On DNN website - Notice: The Active Directory Module currently produced by Tam is slated to be included in an upcoming release of DotNetNuke.  It is not "officially supported" at this time, although we are clearly preparing to do so.  Please bear with us while we incorporate this useful functionality in an appropriate manner.

Retrieving User Info from DotNetNuke  - Discussion on Tam's module and Active Directory

Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication - Microsoft on AD and ASP.Net

Active Directory and ASP.NET 2.0 Beta 2 - Did you know MS shipped an Active Directory Membership Provider in Beta 2?

more coming soon...

Wednesday, December 07, 2005 3:32:45 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Tuesday, December 06, 2005

Out of the box, DNN 4.0 Search is broken. A search test showed the following:

In the Log Viewer I see the following errors:

ModuleId: -1
ModuleDefId: -1
FriendlyName:
ModuleControlSource:
AssemblyVersion: 04.00.00
Method: System.Web.UI.Util.CheckVirtualFileExists
FileName:
FileLineNumber: 0
FileColumnNumber: 0
PortalID: 0
PortalName: My Website
UserID: 1
UserName: host
ActiveTabID: 37
ActiveTabName: Search Results
AbsoluteURL: /Default.aspx
AbsoluteURLReferrer:
ExceptionGUID: d7404334-fde9-4910-adea-52b19d7d8278
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
InnerException: The file '/DesktopModules/SearchResults/SearchResults.ascx' does not exist.
Message: DotNetNuke.Services.Exceptions.ModuleLoadException: The file '/DesktopModules/SearchResults/SearchResults.ascx' does not exist. ---> System.Web.HttpException: The file '/DesktopModules/SearchResults/SearchResults.ascx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at System.Web.UI.TemplateControl.LoadControl(String virtualPath) at DotNetNuke.UI.Skins.Skin.InjectModule(Control objPane, ModuleInfo objModule, PortalSettings PortalSettings) --- End of inner exception stack trace ---
StackTrace:
Source:
Server Name: BARNEY

I have confirmed that '/DesktopModules/SearchResults/SearchResults.ascx does not exist and have yet to find where it's real location is.

 

ModuleId: -1
ModuleDefId: -1
FriendlyName:
ModuleControlSource:
AssemblyVersion: 04.00.00
Method: System.Web.UI.UserControl.get_Request
FileName:
FileLineNumber: 0
FileColumnNumber: 0
PortalID: 0
PortalName: My Website
UserID: 1
UserName: host
ActiveTabID: 37
ActiveTabName: Search Results
AbsoluteURL: /Default.aspx
AbsoluteURLReferrer:
ExceptionGUID: 761ae1d9-b426-4dee-af03-f371eb81af25
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
InnerException: Object reference not set to an instance of an object.
Message: DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.UI.UserControl.get_Request() at DotNetNuke.Entities.Modules.PortalModuleBase.get_IsEditable() at DotNetNuke.UI.Containers.Title.CanEditModule() in D:\Venexus\DNN4.0\Admin\Containers\Title.ascx.vb:line 52 at DotNetNuke.UI.Containers.Title.Page_Load(Object sender, EventArgs e) in D:\Venexus\DNN4.0\Admin\Containers\Title.ascx.vb:line 82 --- End of inner exception stack trace ---
StackTrace:
Source:
Server Name: BARNEY

ModuleId: -1
ModuleDefId: -1
FriendlyName:
ModuleControlSource:
AssemblyVersion: 04.00.00
Method: DotNetNuke.UI.Utilities.DNNClientAPI.EnableMinMax
FileName:
FileLineNumber: 0
FileColumnNumber: 0
PortalID: 0
PortalName: My Website
UserID: 1
UserName: host
ActiveTabID: 37
ActiveTabName: Search Results
AbsoluteURL: /Default.aspx
AbsoluteURLReferrer:
ExceptionGUID: c9460ab3-3704-4c8b-a55d-d0d63a4a1bea
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
InnerException: MinMax persistance type of cookie requires a ModuleId
Message: DotNetNuke.Services.Exceptions.ModuleLoadException: MinMax persistance type of cookie requires a ModuleId ---> System.Exception: MinMax persistance type of cookie requires a ModuleId at DotNetNuke.UI.Utilities.DNNClientAPI.EnableMinMax(Control objButton, Control objContent, Int32 intModuleId, Boolean blnDefaultMin, String strMinIconLoc, String strMaxIconLoc, MinMaxPersistanceType ePersistanceType, Int32 intAnimationFrames) at DotNetNuke.UI.Containers.Visibility.Page_Load(Object sender, EventArgs e) in D:\Venexus\DNN4.0\Admin\Containers\Visibility.ascx.vb:line 216 --- End of inner exception stack trace ---
StackTrace:
Source:
Server Name: BARNEY

After further research I found a fix on ecktwo's website: DNN Search for 4.0.0

UPDATE: This issue was fixed in DNN 4.0.1 release

Tuesday, December 06, 2005 1:47:44 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Monday, December 05, 2005

We have a large DNN installation and we are moving everything from DNN 3.1 to DNN 4.0 and needed to do some testing. So, first we need to get the DNN database from the local SQL Server 2000 to a remote SQL Server 2005.

Here is what I did...

  1. Went into DNS and created a new subdomain called dev.somedomainname.com and pointed it to the development server IP address.
  2. Copied the entire DNN directory on the production server to the development server.
  3. Reset permissions on the dev server for the DNN folder I copied from production to allow Network Service full permission.
  4. Created a new website on Dev in IIS and setup a host header for the new subdomain and for localhost, pointing it to the DNN folder I copied from Prod.
  5. Detached the production DNN database form the SQL Server 2000 instance.
  6. Copied the MDF and LDF files for the DNN database from \mssql\MSSQL\Data on Prod and moved them to \Microsoft SQL Server\MSSQL.1\MSSQL\Data  on Dev (actually I just made a copy of the files in the same folder so I could quickly get Prod running again and would not have to wait on the slower network connection to move 3 Gb of data over, then moved them over to Dev and renamed them by removing "Copy of " from the filename).
  7. Attached the database I copied from Prod using SQL Server Management Studio. Part of this process automatically upgrades database to from 2000 to 2005. WARNING! You cannot move a SQL Server 2005 database back to SQL Server 2000 using the same method. Nor can you use replication from SQL Server 2005 to a 2000 instance...or not atleast when I tried it in CTP release a couple of months ago.
  8. Opened web.config and changed the server name, username, and password for the remote SQL Server.
  9. Opened up a browser on the Dev server and went to http://dev.somedomainname.com and confirmed site was assessible.

I will repeat these tasks again when I have done thorough testing on Dev with the exception of copying the DNN root over. I will post any issues I encounter...

Monday, December 05, 2005 6:43:35 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 

The first thing I noticed when I selected the dropdown for modules was that many were missing.

 

 

Where are the other core modules??? They appear in the correct folder:

 

 

I am not sure why this happened, but to fix it, I simply unzipped DotNetNuke_4.0.0_Install.zip to a new folder and using Host > Module Definitions > Upload New Module, uploaded each module found in \Install\Module

 

After uploading the modules and installing them, all seems well and I successfully added a new Text/HTML module into the Home page and edited it without incident.

 

 

 

UPDATE: Read Cathal's Comments

Monday, December 05, 2005 2:21:02 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Sunday, December 04, 2005

I had installed DotNetNuke 4.0 on a Windows 2003 Standard box using a remote SQL Server 2005 Enterprise database on a development box earlier tonight. I had navigated around doing a few things and paused in the middle of updating the host account. I might have reached the session expiration time before I returned, but I decided to update the host password and clicked update. This is the error that was returned:

Unhandled Error

Error Details

File
Error  

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

I believe this means I need to allow named pipes because by default SQL Server 2005 does not allow this type connection. I was not aware that DNN used Named Pipes and I did not see anything concerning this in the Installation help. So, this is how you change it....

  1. Start > All Programs > Microsoft SQL Server 2005 > Configuration Tools > SQL Server Surface Are Configuration
  2. Once opened, use Surface Area Configuration for Services and Connections
  3. Select Using both TCP/IP and named pipes
  4. A notification that the Database Engine must be restarted before it takes effect will be displayed. You can restart the engine from Admin Tools > Services and restart SQL Server (MSSQLSERVER)

I am assuming this is all that is required. I will post a comment here if I encounter this error again.

 

 

Sunday, December 04, 2005 12:05:10 AM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Saturday, December 03, 2005

At the end of the DNN 4.0 install on Dev, I encountered the following error:

 

Installation Complete



 

Click Here To Access Your Portal




Unhandled Error

Error Details

File
Error   Unable to generate a temporary class (result=1). error CS2001: Source file 'C:\WINDOWS\TEMP\vsl59tus.0.cs' could not be found error CS2008: No inputs specified

System:

Windows 2003 with Service Pack 1

DNN 4.0

SQL Server 2000 on local machine.

 

The answer is to give Network Services full permissions for C:\WINDOWS\TEMP and C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

I might have missed this in the Installation instructions, but I sure did not see it in there that it was required to give permissions to the Temp folder. Anyway, it's working now. I will be testing against a remote SQL Server 2005 shortly...

Saturday, December 03, 2005 9:41:50 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, December 02, 2005

Lee Sykes of DNN Creative approached me about doing an interview on search engine optimization and DotNetNuke. I jumped at the opportunity and am happy to announce the Issue 4 release of DNN Creative that includes the DNN and SEO interview. I will admit that I do not know everything about search engine optimization nor DotNetNuke, and have not been in the SEO game long. Nor do I have the stomach to live on the whim of Google or any other search engine algorithm change, but there are a LOT of basic things you can do to make your DNN site rank better in the search engines. I have seen many DNN sites that might look good to the user as far as look and feel are concerned, but the code looks long and poorly optimized in the source. This is disappointing because without the search engines really picking up on the DotNetNuke movement, as well as the search engine users finding sites built with DNN, the opponents of the darkside (damn hippy PHP coders) will continue their run at being the choice for data rich SE friendly sites. What I do know about SEO is from running many DNN sites and trying things to see how the search engines treat them. Also, having wrote several crawlers/spiders, I do know how the bots that retrieve and index webpages work. So, check out the interview in Issue 4 of DNN Creative and search engine optimize your DNN website.

Friday, December 02, 2005 11:43:57 AM (US Eastern Standard Time, UTC-05:00)  #       | 

As posted on Xfernal.com, here is the code for DotNetNuke Skin HTML Table Trick. This will help for search engine optimization by making the "Left Menu" aka LeftPane appear to the user as expected, but appear in the HTML code below the ContentPane. This will help getting the main content of the webpage above the navigation, making the content more important than the menu when indexed.

Here is the code: 

<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
   <TBODY>
      <TR>
         <!-- skip to second column -->
         <TD vAlign=top align=middle width=180></TD>
         <TD class=ContentPane id=ContentPane vAlign=top width="100%" rowSpan=2 visible="false" runat="server"></TD>
      </TR>
      <TR>
         <TD class=LeftPane id=LeftPane vAlign=top align=middle width=180 visible="false" runat="server"></TD>
      </TR>
   </TBODY>
</TABLE>
Friday, December 02, 2005 11:07:47 AM (US Eastern Standard Time, UTC-05:00)  #       | 

A DotNetNuke site I have been working on that has some decent traffic, was experiencing an occasional Out of Memory Error. During peak traffic times, IIS would crap out and throw the error. IISReset was neccessary sometimes to alleviate the issue...very frustrating.

Here is the error:

InnerException: Exception of type System.OutOfMemoryException was thrown.
Message: DotNetNuke.Services.Exceptions.PageLoadException: Exception of type System.OutOfMemoryException was thrown. ---> System.OutOfMemoryException: Exception of type System.OutOfMemoryException was thrown. --- End of inner exception stack trace ---

Environment:

  • DotNetNuke 3.1
  • Windows 2003 Server
  • All of the latest patches/service packs
  • MS SQL Server 2000
  • 1.6 Gb Database size
  • Dual 3 Ghz Xeons with 2 Gb RAM Dell 2850

After digging into logs and looking around Host > Schedule,  I noticed that the errors coincided with the DNN Search Indexer schedule, so I stopped it. This helped for a bit, but as the site continued to grow (over 500,000 pages), the error began reappearing. 

I had tried a few other things to get rid of the issue without success. For example, under Host > Schedule I enabled DotNetNuke.Services.Cache.PurgeCache, DOTNETNUKE and was purging every 30 minutes. I thought surely this would be the answer, kicking myself for not enabling it earlier. However, to my disappointment, the error persisted. ARRRRRRRR!

I feel strongly that SQL Server should be on it's own server, but due to a server shuffle in our rack and decommisioning an older server to make room for 3 other servers, we have been using a single server for both IIS and SQL Server for this site. We are working through a few Remote Procedure Call errors with DNN 3.x and 4.0 and SQL Server 2005 (will discuss in later post) and were forced to use this setup. This error would surely go away when we move our production database to our Quad Itanium Processor server with 12 Gb RAM, but unfortunately this was not an option. So, I started digging through MSDN and found the Server Memory Options.

"Use max server memory to prevent SQL Server from using more than the specified amount of memory, thus leaving remaining memory available to start other applications quickly. SQL Server does not immediately allocate the memory specified in max server memory on startup. Memory usage is increased as needed by SQL Server until reaching the value specified in max server memory. SQL Server cannot exceed this memory usage unless the value of max server memory is raised." - MSDN

So, I decided to give it a try...This is what I did:

  1. Opened Enterprise Manager
  2. Expanded the server group
  3. Right-clicked the server
  4. Clicked Properties
  5. Clicked the Memory tab
  6. Under Dynamically configure SQL Server memory, lower the Maximum

This seems to have worked. MS SQL Server is such a pig. By putting it on a diet and setting max server memory, the error has disappeared. I decided to do some testing and was beating up the server pretty bad with several crawlers/spiders I have built and was hitting the site hard. The only error I experienced during my testing was an occasional deadlock victim error, which is expected with the number of transactions taking place on this database. I will live with a temporary error over an IIS crash anyday. Moving everything back to seperate servers for IIS and SQL Server should help greatly for a DNN site of this size. Let's just hope the DNN team can knock out a few crtitical issues with RPC and SQL Direct provider.

Friday, December 02, 2005 2:32:13 AM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Thursday, December 01, 2005

Out of the box, DNN does a couple of very bad things as far as search engine optimization is concerned. While I was learning how DNN worked, I had Google index one of our sites and it indexed every page on the site AND the unique URL page for Login, Register, Privacy Policy and Terms of Use, making my site index 5 times larger than it really was. Very bad! This redundant content could hurt search engine rankings...

The first concern is the links to Login and Register. By default, with search engine friendly URLs turned on, a unigue URL is created on EVERY page for the Login and Register. This can be quickly fixed...

The fix:

  1. Create a new page called Login
  2. Add the Account Login module to the page
  3. Create another page called Profile (you can call it whatever you want)
  4. Add the User Account module to the page
  5. Go to Admin > Site Settings
  6. Expand Advanced Settings
  7. Under Page Management select the page you first created for the Login Page
  8. For the User Page, select the Profile page you created
  9. Click the Update link at the bottom of the Site Settings page

Now, DNN will use the "hardcoded" links for all Login/Register links on the site.

The second badness DNN does is with it's default DotNetNuke skins. Within the skin is the DNN Tag/Token for Privacy Policy and Terms of Use. Once again, this is a unique URL for EVERY single page on the website for both pages. This one is a little more difficult and requires that you edit the skin. So, open up your favorite editor and modify the skin by removing the tags/tokens for "PRIVACY" and "TERMS" to use a real hardcoded links. While most skin developers include these tags/tokens in their skins, until the DNN core team fixes this issue, I would recommend removing them.

Update 1/5/2005:

I submitted an issue to the DNN Bug Tracker on 1/1/2005: DNNP-2289

No response yet...

Thursday, December 01, 2005 4:17:37 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 

I decided to create a blog just for keeping up with everything going on in the DotNetNuke world. Anything I find helpful or newsworthy concerning DNN will be posted here. Many of thepost will undoubtedly be technical and mainly for developers, but users of DNN will find information they can use to make their DNN site better. So, for my first post, I will list a few of the main websites for DotNetNuke and keep this short...

DotNetNuke Links:

More coming soon!

 

Thursday, December 01, 2005 3:32:29 PM (US Eastern Standard Time, UTC-05:00)  #       | 
Copyright © 2009 Venexus, Inc.. All rights reserved.