Blog Home  Home Feed your aggregator (RSS 2.0)  
Venexus DotNetNuke Blog - Friday, March 17, 2006
DotNetNuke Articles, Code Snippets, Errors, and News
 
 Friday, March 17, 2006


We have been waiting on the DotNetNuke 4.0.3 release in hopes that it will cleanup a few of the random application error messages we have been seeing in DNN 4.0.2 sites. DNN 4.0.2 has been quite buggy and we have been holding off releasing any high traffic sites on production until more issues have been fixed. So, when I found out today that DNN 4.0.3 was released on SourceForge, I immediately downloaded it and installed on my local instance.

Upgrading DotNetNuke

Current Assembly Version: 04.00.03

Current Database Version: 04.00.02

Upgrade Status Report

00:00:00.078 - Upgrading to Version: 4.0.3
00:00:11.640 - Performing General Upgrades
00:00:12.156 - Installing Module File D:\Dev\DNN\Website\Install\Module\Announcements_3.1_Install.zip:
00:00:12.843 - Installing Module File D:\Dev\DNN\Website\Install\Module\Contacts_3.1_Install.zip:
00:00:13.109 - Installing Module File D:\Dev\DNN\Website\Install\Module\Discussions_3.1_Install.zip:
00:00:13.250 - Installing Module File D:\Dev\DNN\Website\Install\Module\Documents_3.1_Install.zip:
00:00:13.421 - Installing Module File D:\Dev\DNN\Website\Install\Module\Events_3.1_Install.zip:
00:00:13.625 - Installing Module File D:\Dev\DNN\Website\Install\Module\FAQs_3.1_Install.zip:
00:00:13.796 - Installing Module File D:\Dev\DNN\Website\Install\Module\Feedback_3.1_Install.zip:
00:00:13.906 - Installing Module File D:\Dev\DNN\Website\Install\Module\HTML_3.1_Install.zip:
00:00:14.140 - Installing Module File D:\Dev\DNN\Website\Install\Module\IFrame_3.1_Install.zip:
00:00:14.250 - Installing Module File D:\Dev\DNN\Website\Install\Module\Image_3.1_Install.zip:
00:00:14.343 - Installing Module File D:\Dev\DNN\Website\Install\Module\Links_3.1_Install.zip:
00:00:14.515 - Installing Module File D:\Dev\DNN\Website\Install\Module\NewsFeeds_3.1_Install.zip:
00:00:14.640 - Installing Module File D:\Dev\DNN\Website\Install\Module\Survey_3.1_Install.zip:
00:00:14.843 - Installing Module File D:\Dev\DNN\Website\Install\Module\UserDefinedTable_3.1_Install.zip:
00:00:15.109 - Installing Module File D:\Dev\DNN\Website\Install\Module\UsersOnline_3.1_Install.zip:
00:00:15.375 - Installing Module File D:\Dev\DNN\Website\Install\Module\XML_3.1_Install.zip:

Upgrade Complete

Click Here To Access Your Portal


Yay! No errors. I did a little testing, and after checking to make sure nothing was really broken, I went ahead an made copies of all DNN 4.0.2 sites we have running and backed up their databases. So far I have installed DNN 4.0.3 on 5 different DNN instances, and on 3 different servers.  All well so far. I will post any problems I find here...

Update:
I noticed there is not an annoucement on the DotNetNuke website...yet. But, the Install, Source, and Templates are available for download at the SourceForge link above.

Friday, March 17, 2006 12:48:00 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Monday, March 13, 2006

2 issues have been fixed in the latest release of the Venexus SignIn module, an alternative DotNetNuke Login module that enforces Terms of Use agreement.

Password Reminder and Register buttons are both working now.

ABOUT VENEXUS SIGNIN MODULE

The Venexus SignIn module is an alternative for the DotNetNuke Login module, that enforces the user to agree to the Terms and Conditions of the website. A use case would be for legal and financial websites that want the user to agree to the Terms of Use for the website, to satisfy legal and/or SEC requirements.

Example:

Venexus Signin Module - DotNetNuke Login that enforces Terms of Use

Registered users can download this module for free by downloading the enclosure to this feed, clicking the link at the bottom of this post, or signing into Venexus and going to this page. The DNN 3 version is also available for download at the site.

 

Monday, March 13, 2006 10:33:35 AM (US Eastern Standard Time, UTC-05:00)  #       |   |  Venexus_Signin.zip (13.48 KB)
 Sunday, March 12, 2006

The "Remember Me" functionality during DotNetNuke 4 login works for only 1 hour by default. Previously, this had been set to 50 years. In order to change persistent login to an extended time, a change to the web.config file is necessary. In the web.config you should see this:

<authentication mode="Forms">
      <forms name=".DOTNETNUKE" protection="All" timeout="60"/>
</authentication>

To increase the period of persistent login to 7 days would be this:

<authentication mode="Forms">
      <forms name=".DOTNETNUKE" protection="All" timeout="10080"/>
</authentication>

To increase the period of persistent login to 1 Year would be this:

<authentication mode="Forms">
      <forms name=".DOTNETNUKE" protection="All" timeout="
525600
"/>
</authentication>

Hope that helps!

Sunday, March 12, 2006 1:07:26 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, March 10, 2006


Nothing To Install At This Time

Current Assembly Version: 04.00.02

Current Database Version: 04.00.02

 

If you get the "Nothing to Install At This Time" message when accessing your DotNetNuke 4 portal, you can add the following line to the appSettings in the web.config file:

<add key="InstallationDate" value="3/9/2005" />

Friday, March 10, 2006 11:45:17 AM (US Eastern Standard Time, UTC-05:00)  #       | 
 Tuesday, February 28, 2006

We are looking for beta testers for a DotNetNuke module that allows users to set/update their Active Directory password. The module has been tested in DNN 3.1.13 and DNN 4.0.2.

Module Settings:

 

Module View:

If anyone has a DotNetNuke development environment, with Active Directory in use, and is interested in testing this module, please let us know by sending an email to support@venexus.com

Tuesday, February 28, 2006 12:49:19 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Saturday, February 25, 2006

For a project we are working on, we have a backend process that needed to get the PostalCode from ASPNET_Profile for a UserName. Thanks to David Silverlights post on DotNetSlackers.com we added the following functions to our database:

 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CREATE FUNCTION dbo.fn_GetElement
(
@ord AS INT,
@str AS VARCHAR(8000),
@delim AS VARCHAR(1) )
RETURNS INT
AS
BEGIN
  -- If input is invalid, return null.
  IF  @str IS NULL
      OR LEN(@str) = 0
      OR @ord IS NULL
      OR @ord < 1
      -- @ord > [is the] expression that calculates the number of elements.
      OR @ord > LEN(@str) - LEN(REPLACE(@str, @delim, '')) + 1
    RETURN NULL
  DECLARE @pos AS INT, @curord AS INT
  SELECT @pos = 1, @curord = 1
  -- Find next element's start position and increment index.
  WHILE @curord < @ord
    SELECT
      @pos    = CHARINDEX(@delim, @str, @pos) + 1,
      @curord = @curord + 1
  RETURN    CAST(SUBSTRING(@str, @pos, CHARINDEX(@delim, @str + @delim, @pos) - @pos) AS INT)
END

 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CREATE FUNCTION dbo.fn_GetProfileElement
(
@fieldName AS NVARCHAR(100),
@fields AS NVARCHAR(4000),
@values AS NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN

  -- If input is invalid, return null.
  IF  @fieldName IS NULL
      OR LEN(@fieldName) = 0
      OR @fields IS NULL
      OR LEN(@fields) = 0
      OR @values IS NULL
      OR LEN(@values) = 0
    RETURN NULL

-- locate FieldName in Fields
DECLARE @fieldNameToken AS NVARCHAR(20)
DECLARE @fieldNameStart AS INTEGER, @valueStart AS INTEGER, @valueLength AS INTEGER

-- Only handle string type fields (:S:)
SET @fieldNameStart = CHARINDEX(@fieldName + ':S',@Fields,0)

-- If field is not found, return null
IF @fieldNameStart = 0 RETURN NULL
SET @fieldNameStart = @fieldNameStart + LEN(@fieldName) + 3

-- Get the field token which I've defined as the start of the field offset to the end of the length
SET @fieldNameToken = SUBSTRING(@Fields,@fieldNameStart,LEN(@Fields)-@fieldNameStart)

-- Get the values for the offset and length
SET @valueStart = dbo.fn_getelement(1,@fieldNameToken,':')
SET @valueLength = dbo.fn_getelement(2,@fieldNameToken,':')

-- Check for sane values, 0 length means the profile item was stored, just no data
IF @valueLength = 0 RETURN ''

-- Return the string
RETURN SUBSTRING(@values, @valueStart+1, @valueLength)
END

 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Then a stored procedure was created to retrieve the users PostalCode by passing in the UserName.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE GetPostalCodeFromUserName
 @UserName nvarchar(50)
AS
BEGIN
 SET NOCOUNT ON;

 SELECT dbo.fn_GetProfileElement(N'PostalCode', dbo.aspnet_Profile.PropertyNames, dbo.aspnet_Profile.PropertyValuesString) AS PostalCode FROM dbo.aspnet_Profile INNER JOIN dbo.aspnet_Users ON dbo.aspnet_Profile.UserId = dbo.aspnet_Users.UserId where dbo.aspnet_Users.UserName = @UserName

END
GO

Saturday, February 25, 2006 7:36:06 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, February 17, 2006

We are gathering requirements for the initial release of DNN FIND, a DotNetNuke search module. There are 2 pieces to this project, the crawler/spider and the fulltext indexing based search module. Currently the crawler/spider is a standalone multi-threaded VB.Net application that we are considering embedding inside of a DotNetNuke module and scheduled service (Host > Schedule). However for large sites, it may be critical for performance to crawl from a seperate server. Also, full text indexing is not included in SQL Server 2005 Express. To get an idea about the website environment of users in the community, we are running a survey to gather requirements for the initial release.

We are considering the following options:

  1. DNN FIND Lite Version: a free DotNetNuke module that utilizes web services to query for results and limited to 250 pages indexed.
  2. DNN FIND Standard Version: a DotNetNuke Module that untilizes web services to query for results and limited to 1000 pages indexed.
  3. DNN FIND Pro Version: a DotNetNuke Module that utilizes a scheduled crawler/spider embedded in DotNetNuke to use collected data for local full text indexing and search. Limited to 5000 pages.
  4. DNN FIND Enterprise Version: A crawler/spider standalone application and a DNN module for querying the fulltext index for the largest of websites. Unlimited pages.

To see an example of our "global search" in development, based on full text indexing, please see the DNN FIND website and/or Find News. Find News now has almost 900,000 articles/pages it its full text index.

So, if you are interested in a DotNetNuke search module for your site, please answer the web environment questions we have in the following: Release Requirements Survey.

If you are interested in beta testing, please let us know by completing the form on the Spider page.

Friday, February 17, 2006 7:27:02 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Friday, February 10, 2006

Have you built a DotNetNuke site and now want to move DNN to production? Or, are you simply moving a DotNetNuke website from one server to some other server? Over the last month I have seen several searches in the logs from people trying to find instructions on moving a DotNetNuke website from development to production, or simply from one server to another. After looking around for similar detailed instructions, I really did not see anything out there that really explained how to setup a IIS box for DotNetNuke, optimized and ready for production. So, I decided to provide instructions on how we do it…

The following instructions are provided to minimize any downtime of the production domain/website, assuming there is an existing website running. However, the same instructions can be applied for a brand new domain/website that does not have a critical execution plan. These instructions will have a basic assumption that you understand how to manage IIS, DNS, and DNN. While we do not provide any guarantees to your particular setup, the following has worked well for us, managing the release of many DotNetNuke websites from our development environment to our production environment, while allowing continued development during the process.

DNS and Subdomains

First, we need to create subdomains. For this example, we will use dev.domain.com and prod.domain.com. Assuming the development environment you are currently working on is using just localhost, adding a subdomain for dev.domain.com may not be neccessary, but provides an easy way to work with multiple domains and projects. Point DNS for dev subdomain to the IP address of your development box and point the prod subdomain to your production box IP. Leave, www.domain.com pointing to where ever you have it pointing currently, but turn your TTLs down to 5 seconds. If this is a new website, you may already be pointing www.domain.com to your dev box, you can leave it there for now. For those who do not know what DNS is, see How Stuff Works.

We use the service of DNS Made Easy. Hands down, this is the best business decision we have made concerning management of DNS. While their site is unfortunately not a DNN site, it provides the interface to get the job done quickly and easily. We use their Business Membership plan that allows us to turn down our domain TTLs to 5 seconds. They offer 100% uptime and have servers globally to handle DNS request. They also provide services for MX backup (your domain will still receive emails, even if your email server is down) and site monitoring (pings your site to ensure it is up, sends notification if down). We have never had a problem, they have excellent support, and great prices for their services.

Once you have the new subdomains created, make sure they are working by pinging from the server(s) or use something like DNS Stuff. If you cannot ping, make sure your firewall is setup correctly to accept and route HTTP traffic to the correct server.

If it’s working, then you are ready for the next step…

The Development DNN Installation

Login as Host and go to Host > Portals > Edit Portal > Portal Aliases > Add New HTTP Alias

Add the following aliases, assuming localhost is the only one created:

1.      domain.com

2.      www.domain.com

3.      dev.domain.com

4.      prod.domain.com

Copy the entire DNN folder on development box to the location on your production box where DNN will reside.

SQL Server Database on Development and Production

Go into Enterprise Manager or SQL Server Management Studio, development database server, and find your DotNetNuke database. Right click and go to Tasks > Detach. Clear the connections if you have to. Once the database has been successfully detached, go to the folder where the database files live (.mdf and .ldf files) and make a copy of your DotNetNuke database and transaction log. If you simply made a copy of the file in the same folder, you can now reattach the database (Tasks > Attach) so development can continue if other developers are working on your project, minimizing development downtime, plus have a backup of development database in case of unexpected issues. If you have a very small database, it may not be an issue just to copy and paste the files to the production server, assuming you are on the same network. However, our “development DNN database” is almost 3 Gb and takes a minute to move over to our production box. So, however you decide to do it, copy the .mdf and .ldf file to production database server. Rename them if necessary and Attach the database similar to the way you detached. Refresh database view if necessary and ensure the database is accessible. If you want to create a custom SQL Server login on production for security reasons, now is the time to do it.

IIS on Production Box

Create a new website in IIS. Map the website to the DNN folder you created on Prod. For the initial host header, use prod.domain.com.

**Note** DNN Documentation show creating Virtual Directories. We have had great success with configuring and managing DNN websites as actual websites, instead of virtual directories and would recommend this route for anyone who is planning on running this in a production environment to reap the benefits of IIS, especially IIS 6 and performance as discussed further down…

If this site is NOT replacing an existing and running domain/website, go ahead and add domain.com and www.domain.com host headers from Website Properties > Web Site Tab > Web site identification > Advanced Button. If you use internal IP addresses (Firewall routes the HTTP traffic), make sure you have the right IP addresses and port specified. By default HTTP traffic runs on port 80.

If this is a DNN 4 install, make sure you change ASP.Net version to 2.0 from the ASP.NET tab in Web site propoerties.

For performance enhancements, and as a necessity if you are running both ASP.NET 1.1 AND ASP.NET 2.0 websites, create a new application pool for the website and a web garden as described in the following entry on IIS 6 Horticulture.

Production DNN folder

Within Windows Explorer, go to your production DNN folder, right-click and select Properties > Security and make sure Network Service has the proper permissions. Now, modify the web.config’s database connection string(s) (2 of them for DNN 4) to the production database server and production database. If you created new SQL Server accounts for access, you will want to update the id and pass as well.

Testing it out…

First, open up a command prompt and make sure you can ping prod.domain.com and dev.domain.com. You should get the production IP address for prod.domain.com and the development server IP address for dev.domain.com. Now try to navigate to prod.domain.com in a web browser. If you get a successful page load, you now can do your testing to ensure everything is there and working. Since you created a subdomain for dev.domain.com, you can do your development as needed, test, and when ready, move to production. Periodic replication of the database from Production to Development allows you to keep a development environment that closely resembles your production environment. If you have tested everything and are sure the prod.domain.com is working correctly, you are ready to go live…

Going Live with DotNetNuke 4

Okay, so you have tested and are confident that the site is ready for primetime. First, go ahead and change your DNS settings to point domain.com traffic to the production server IP address. With IIS Manager open, stop the old website if one was running and add www.domain.com and domain.com to the host headers to the new website if necessary. Try www.domain.com and it should work. You now have a live DNN site. Assuming all went well, you can turn your TTLs back up in DNS for better caching.

Updates to this post

I hope you have found this useful. If you have any suggestions, please write a comment and share your experiences. I will try to keep this entry updated if I come across any other tips or updates and eventually may even get around to adding some pictures for futher help. Stay tuned!

Friday, February 10, 2006 7:21:00 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Thursday, February 09, 2006

We had to create a DotNetNuke module that would enforce that the user agrees to the Terms and Conditions of the website before being able to login, to satisfy a legal and SEC requirement for a financial company's client portoflio access. The module has been in use on the site for over 9 months now and we recently upgraded it to support DotNetNuke 4.x.

The Venexus SignIn module is free for download. As a "filecasting" test, I will be including the DNN 4 version of this module as an enclosure to this entry. It will be interesting to see how RSS/ATOM news readers interpret the enclosure. More on this later... To download the DNN 3 or 4 version, if you are not reading this by a news reader, create an account on the Venexus website and go here. Registered users will be able to download.

To use the module, backup your DNN installation and install as you would any other module. Drop the Venexus SignIn module on a page and go to the Settings. You can specify your custom, or existing Terms of Use page within Edit Terms and Conditions Settings.

Currently the sourcecode is not available until we have time to write some comments. If you have any suggestions for future releases feel free to comment here and we might get around to adding them ;-)

Thursday, February 09, 2006 4:39:35 PM (US Eastern Standard Time, UTC-05:00)  #       |  Venexus_Signin.zip (12.45 KB)
 Monday, February 06, 2006

I noticed something new that I have not seen in previous versions of DotNetNuke...both, web.config and siteurls.config are backed up to the Config directory. With each change, a folder labeled "Backup_YYYYMMDDTT" is created and a copy of the original files are placed within. I am assuming this is the cached version that gets backed up during the application restart. I have always been careful and made a copy of the web.config file before making the change, but it is nice to know that there is another copy stored in the Config folder just in case. If anyone has any information about how this process works, I would be interested in knowing more details. Please share!

Monday, February 06, 2006 9:25:06 AM (US Eastern Standard Time, UTC-05:00)  #       | 
 Sunday, February 05, 2006

A lot of DotNetNuke developers/webmasters forget the importance of traffic derived from their blogs or RSS feeds. Any seach engine optimization plan should include submitting links to  popular blog/news feed directories.

For those who are unaware, you can enable syndication within several DotNetNuke modules. For example, in the Text/HTML module Settings > Page Settings > Basic Settings is Allow Syndicate checkbox. If this is enabled, a XML icon will appear on the rendered page.

There are also many DotNetNuke modules that provide RSS feeds for syndication. A couple of my favorite modules are Orizonti's NukeNews and Scott Schecter's NukeSyndicate. Both of these modules provide a RSS feed for consumption. NukeSyndicate allow for posting audio and video files, know as podcast and vodcast...more on this later ;-)

Recently I spent a few hours submitting this blog to many directories. Most of the links below do not require reciprocal links, but in order to satisfy those who do and to provide a resource for others, here is the list I submitted our RSS feed to:

Blog Flux Directory
Blogarama - The Blogs Directory

Blogfuse Blog Directory
blog search directory
Blogs for
Small Businesses
Internet Blog Top Sites
Blog-Watch - The Blog Directory
Chordata
Complete RSS
Easy RSS
Every Feed
Feed-Directory
Feeds Farm
Feedster
Webfeed (RSS/ATOM/RDF) registered at http://www.feeds4all.nl
Feedzie

Findory

    Find News!
Fyber Search
GoBig Network
IceRocket

Jordo Media
News XS
Newzfire
Nooked
Plazoo
PubSub
Press Radar 
Read A Blog
Redtram

RSS Feeds
RSS Network
SynBlog.com - Blog Directory
Yahoo! RSS

If you have any other suggestions, please do tell! Check back for updates....

Sunday, February 05, 2006 5:44:44 PM (US Eastern Standard Time, UTC-05:00)  #       |   | 
 Tuesday, January 31, 2006

I ran into an issue with a DNN site we are developing in DotNetNuke 4 and the ability to install modules from Host > Module Definitions > Add New Module. After selecting the module and clicking Upload, I was immediately redirected to the Module List page, without installing the module. The weird part was that it did not cause an issue with all of the modules I was uploading, only a few of them. Without turning debugging on, and finding the true root of the problem, I simply did the following:

  1. Dropped the modules I wanted to install into the \Install\Module directory.
  2. In a browser, navigate to http://www.domain.com/install/install.aspx?mode=installresources

DotNetNuke will then install the module and you are able to continue with your development. Yay!

Tuesday, January 31, 2006 11:20:58 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Monday, January 30, 2006

Most likely you are reading this because you are frantically trying to figure out how to login into your DotNetNuke portal because you have found yourself locked out. You may have even received a password reminder with a blank password. Having fun yet???

When we were first testing DotNetNuke in the DNN 3 beta days, we had a problem with not being able to login into the host account. I fixed the issue by overwritting the host Password and PasswordSalt fields in aspnet_Membership table. Recently, the same issue arose and I had to do this again. So, I decided to jot down a few notes that I hpe will help you in solving your issue. Read on....

Before I explain, lets check to make sure it is not one of the other issues related to not being able to login.

  1. Clear your cache and cookies and retry to login
  2. Did you recently upgrade your DotNetNuke site or change the web.config? If so, the passwords are encrypted and stored in the membership provider tables using the machine validation and decryption key strings. They are located in the web.config below the server connection string. You can now thank <insert favorite God> you backed up the DNN installation before upgrading, because you can go back to the old web.config and use the machine keys to upgrade your new web.config file. Look for something like this:
                         
      <add key="MachineValidationKey" value="extremelylongrandomlookingstringofcharacterswouldgoinhere" />
      <add key="MachineDecryptionKey" value="anothersetofextremelylongrandomlookingstringofcharacterswouldgoinhere" />
  3. Did you accidentally change the Login page in Admin > Site Settings > Advanced Settings? You can do the following: **NOTE** Make sure you change your PortalID appropriately.                         
    From SQL Server Management Studio or Enterprise Manager, run the following statement:                     
                      
    SELECT TabID, TabName FROM Tabs WHERE (TabName LIKE '%Login%') AND (PortalID = '0')

          Find the Tab?
        If you get a result, and are sure it is the Login page, run the following SQL Statement to update your settings:
          **NOTE** Make sure you have the correct  TabID and PortalID!
          
        Update Portals Set LoginTabID = '123' WHERE (PortalID = '0')
                    
        You should now be directed to the login page of your portal....

          Didn't Find the Tab?
        If you did not get a result to the first query and deleted the Login page, you are screwed...just kidding. John Mitchell's Blog         provides the solution.

None of those work for you? Join the club!

The solution:
Assuming you have more than one account for your portal (some lowly user account will do), run the following SQL:

SELECT     aspnet_Users.UserName, aspnet_Membership.Password, aspnet_Membership.PasswordSalt
FROM         aspnet_Membership INNER JOIN aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId
WHERE     (aspnet_Users.UserName = 'host') OR (aspnet_Users.UserName = 'someusername')



You should now be able to see the Password and PasswordSalt row you need to use to replace your host account Password and PasswordSalt.

UPDATE    aspnet_Membership
SET         Password = 'someusernameencryptedpasswordstring', PasswordSalt = 'someusernameencryptedpasswordsaltstring'
WHERE     UserID = 'youraspnetuseridforhost'


Now, go to the login page and request your password reminder. You should now have the information you need to login into your portal.

Hope that helps!

UPDATE 3/12/2006:

It may be neccessary to change the ApplicationID to match the portal in use.

Monday, January 30, 2006 7:12:30 PM (US Eastern Standard Time, UTC-05:00)  #       | 
 Tuesday, January 24, 2006

Working from IIS 4 days to IIS 5 was a huge improvement, but I am constantly amazed with the new IIS 6. There are so many goodies I keep finding that were not in IIS 5 that help with administration and performance. The latest one I discovered a couple of weeks ago and have been playing with is Web Gardens. I'm not talking about web farms here, but the horticulture of worker processes. From my testing, I conclude a little web gardening in IIS will definitely help DotNetNuke performance. So, the nest time your DotNetNuke website is getting pounded with traffic and you start seeing delays in page load time, a few extra worker processes can handle the extra load...read on :-)

Too help with performance, each domain should be in its own Application pool within IIS.

"IIS versions earlier than 6.0 use the ASP.NET process model (Aspnet_wp.exe). Under the ASP.NET process model, each unique application version automatically runs in a separate process at run time. All applications that target the same version of the runtime share the same process (or processes in Web garden mode). However, IIS 6.0 uses the IIS 6.0 process model (w3wp.exe) and introduces a new isolation feature called application pooling. Application pooling allows applications to run together in one or more processes, as long as they share the same pool designation. Applications that are assigned different application pools never run in the same process." - MSDN

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.

Since IIS is running in worker process isolation mode, Web gardens become an option.

"In IIS 6.0 worker process isolation mode, application pools enhance Web site or application reliability by isolating applications and the worker processes that service those applications. For even greater reliability, you can configure an application pool to be supported by multiple worker processes. An application pool that uses more than one worker process is called a Web garden. The worker processes in a Web garden share the requests that arrive for that particular application pool. If a worker process fails, another worker process can continue to process requests." - MSDN

To configure a Web garden by using IIS Manager

  1. In IIS Manager, expand the local computer, expand Application Pools, right-click the application pool, and then click Properties.
  2. Click the Performance tab, and under Web garden, in the Maximum number of worker processes box, type the number of worker processes that you want to assign to the application pool. (You must type a number greater than 1 for the application pool to become a Web garden.
  3. Click OK.

How does this help for performance?

First and foremost, under heavy load (web traffic), a worker process can get tied up with a request. If this happens, there is another worker process available to take the load. Utilizing this has definitely helped during peak traffic times. Also, when traffic is steady, each new connection is passed to a different worker process in the Web Garden, in a round-robin scheme. This smooths out the load, instead of  fighting for resources bound to a worker process.

All for now...I have a garden to tend.

Tuesday, January 24, 2006 11:03:53 PM (US Eastern Standard Time, UTC-05:00)  #       | 
Copyright © 2010 Venexus, Inc.. All rights reserved.