This is a very simple case of saving a list of settings to Silverlight Isolated storage during an Application Exit event:

    IsolatedStorageSettings.ApplicationSettings[key] = settings;

When the application restarted, the ApplicationSettings were empty.     I did not received any errors until an explicit save was added:

    IsolatedStorageSettings.ApplicationSettings[key] = settings;

The save is normally not needed since the application settings are saved implicitly by the IsolatedStorageSettings class.  After the save was added, the following helpful exception was thrown:

The collection data contract type ‘System.Collections.Generic.List`1[[… ColumnSetting, … ‘ cannot be deserialized because it does not have a public parameterless constructor. Adding a public parameterless constructor will fix this error. …

Well, (duh) it turns out the problem had nothing to do with Isolated Storage.  Rather, it was the inadvertent omission of the public constructor that was causing the problem.




My Outlook PST file recently reached 3GB in size and, while Outlook will still performing ok, I needed to reduce the size of the file to keep the size of my nightly backup reasonable. 

I removed old and large messages from the Sent and Deleted messages folders and estimated that I freed up at least 1/3 of my used space.  I tried compacting the file through Outlook and through the Control Panel Mail applet.  The compaction finished too quickly and the file remained the same size.

This was solved by rebooting and going directly to the Control Panel Mail applet (double click Personal folders line and click the Compact Now button) before opening Outlook.  My PST file is now 1.2GB.

I hope this helps someone else.

I recently moved a database to a new Sql Server installation for a pro-bono client.  They have a legacy Microsoft Access application (adp file) which needed to be re-pointed to the new server.   Since they do not use domains, I simply entered the IP address and Sql Server credentials for the new server on the connections page and it worked.


Well, it worked for users that had an id on the server and had elevated privileges.  Everyone else was getting the infamous “Sql Server does not exist or access denied message “ message.   There are many things than can cause this message but they did not apply in this case.

How could user authentication be getting in the way of connecting when I am specifying Sql Server credentials and forcing the connection to use tcp/ip instead of named pipes?   

The answer is that this instance of Sql Server is running on port 5000 instead of 1433.   The authenticated users were able to connect because, during the connection attempt, the client software queried the Sql Server Browser service and determine that the correct port number was 5000.  The anonymous clients did not have this advantage and therefore tried to connect on port 1433 and subsequently failed.

The All tab on the Data Link Properties page has a Property were the port number can be specified.  This solved the problem for everyone.


One really handy feature of Microsoft Sql Server is the ability to link to non-Sql Server databases, such as Oracle.  This allows you to write simple queries in Sql Server against the other database.

For example, to link to Oracle, you would use the following commands:

EXEC sp_addlinkedserver   ‘ServerAlias‘,  ‘Oracle’,  ‘MSDAORA’,  ‘TNS_NAME’
EXEC sp_addlinkedsrvlogin ‘ServerAlias‘, ‘FALSE’, NULL, ‘OracleId, ‘OraclePwd’

Then, in theory, you should be able to write queries like the following in Sql Server Management Studio:

select * from [ServerAlias]..[OracleSchema].[TableName]

When I first tried this, the following error message was given:

Msg 7319, Level 16, State 1, Line 1
The OLE DB provider “MSDAORA” for linked server “XYZ” returned a “NON-CLUSTERED and NOT INTEGRATED” index “TABLE_IDX2” with the incorrect bookmark ordinal 0.

The solution to this problem is to force the Oracle Indexes to be ignored by changing the “Index as access path” option on the MSDAORA provider (not the link).



The next problem I ran into was:

Msg 7356, Level 16, State 1, Line 1
The OLE DB provider “MSDAORA” for linked server “XYZ” supplied inconsistent metadata for a column. The column “NUMBER_FIELD” (compile-time ordinal 39) of object “”SA”.”TABLENAME”” was reported to have a “DBTYPE” of 130 at compile time and 5 at run time.

Microsoft’s proposed solution to this problem requires recreating the tables on oracle to fix the inconsistency.  But what if you only have read only access to the Oracle server?

The workaround is to use the OPENQUERY function to execute the sql in pass through-mode on Oracle.  So, if you rewrite the query as follow, the inconsistency error goes away:


Two other important points:

  • The Oracle table names must be upper ciase.
  • The queries should be relatively simple.  The optimization of these linked queries is relatively limited so keep it simple!

Hope this helps.

Looks simple enough but it took a few tries to get the SMTP servings right for a “Google for Domains” account:


Remember that Google limits each mail account to sending 500 messages a day to foil spammers.  If you have a higher volume than that, then you will have to look elsewhere for an SMTP server.

As a bonus, when you use GMail for your SMTP server you can see the history of emails sent from DotNetNuke in your GMail Sent folder.   This really helps with debugging email notification issues.

For example, I could never figure out where the Test messages were going until I saw them in my Sent Folder.  By looking in the Sent folder, it was very obvious that they are sent to the Host’s Email address which I still had set to the default value of support@portal_domain.com.


Let me know if this helps you out.

tabbedbrowsing.jpgtabbedbrowsing.jpgtabbedbrowsing.jpgtabbedbrowsing.jpgWhenever I set up a new machine for myself, I immediately go to Internet Explorer tab options and check the “open home page for new tabs instead of blank page” option.  However, it does not automatically take effect.  

 You need to then check the (less than obvioTab OptionsTab Optionsus) “Never show this page again” box on the “Welcome to Tabbed Browsing” page.  Hope this helps!

A different, yet not unexpected starting lineup was used tonight.  Given the size and offensive force on the front line of Detriot, Eddie House would not have been a good fit. Enter Mikki Moore in place of the injured Nenad Krstic.  The has been due to Mikki given the solid numbers has put up since Cliff Robinson went out four weeks ago with a knee injury.

Q1:  Except for minutes 9 – 10, the Pistons had their way with the Nets (just like the Bucks the previous game).  The Nets found them self trailing 31-20 and not doing anything to get give the fans hope.

Q2: Encouraging signs as one good defensive stand followed another.  Adams, Boone and Moore fought for every loose ball and created a number of second opportunites.

Q3: Defensive flow continued plus, now, Vince Carter starts to get it going.  A couple of drives, a couple of assists, and the Nets are back in the game.   Doesn’t take much to get me on the edge of my seat again.  The Nets build the lead to 7 as the fourth quarter starts.  The problem though is that Jefferson, Carter, and Kidd all need a blow.

Q4: I knew it was going to be tough against Detroit in the fourth and wondered if the good flow from Q2 would continue.   The Nets were in the game until the last seconds and and if not for a very questionable non-call on the last drive (and a couple of poor calls a few minutes earlier), this would have been the Nets night.

Overall:  First game in a while where I saw signs of improvement and hope that it will continue tomorrow night against the Yao-less rockets. 

Player Reviews and Observations:

Jason Kidd B+ Excellent game overall;  Forced the Nets to push the ball quickly in the second half of the game and it made a huge difference in how Detroit set up ther defense; First time in a while, his 9 rebounds did not lead the Nets; expect to see his minutes increase as Lawrence shortens the bench in hopes of establishing a defensive identify
Richard Jefferson B+ Good defensive effort on Tyshaun Prince; Solid numbers; Anyone else this he is holding back because of his ankle?
Vince Carter B- As Vince went so did this game … miserable shooting and defense early first half; turned it up mid-way throught the second.
Jason Collins B Another very good defensive game; had some lift on dunks in the first half; finished with 14 points and 4 rebounds; almost if if Hassan and Boone’s enrgy us infectious.
Mikki Moore B- Some key free flows; just doing what Mikki does best … energtic, good hands …. having fun out there.
Josh Boone B The source of HOPE for the Nets in the coming months. Seems to have his hands on or near many rebounds.


Technorati tags: , , , ,