Sync Framework Error- Retrieving the COM class factory for component with CLSID

When I deploy a desktop application which use Microsoft Sync Framework it gives following error:
Retrieving the COM class factory for component with CLSID {EC413D66-6221-4EBB-AC55-4900FB321011} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
This could be to several different reasons depending on your environment. In my case this is a new Windows 8.1 x64 laptop. Then I installed Synchronization-v2.1-x64-ENU.msi on this laptop, it solved the problem.

Please note that initially I installed Synchronization-v2.1-x86-ENU.msi since the software is a x86 application. I am wrong that didn’t work, since the OS is x64 it need Synchronization-v2.1-x64-ENU.msi.

Previously I also had this same error when synchronise a client use N-Tier system after deploying the server component to IIS. Since our Windows Server 2008 is x64, I had to install the same Synchronization-v2.1-x64-ENU.msi to the server to fix the issue.

Posted in Sync Framework | Leave a comment

Multi boot – Vista, Windows 7 and Windows 8 recovery re-install issue

My Dell XPS420 has Vista, Windows 7 and Windows 8.1 as multi boot system. OS are installed in 3 physical Hard Drives.
Originally installed older OS Vista first and then Win 7 and Win 8, but later due to hard drive failure in the win 7 HDD, windows 7 was re-installed on 11.12.2014 after year later since Win 8 installation.
This screw up the Windows 8 graphical boot option menu. Followed several guides found in the web, but didn’t work except an answer from stack exchange (Super User).

In Summary,
Followed the article:
“How to Restore Graphical Boot Options Menu In Windows 8” published on intowindows.com.
• Msconfig / boot/ and set Win 8.1 as default
• Open CMD prompt Run as administrator and execute
bcdedit /set {current} bootmenupolicy standard

Then using recovery disk using Troubleshooting/Advanced options/ command Prompt
bootrec /rebuildbcd and press enter key
Then type “All” to “Add installation to boot list? Yes/No/All:”.

And that method didn’t work as well.
So followed the first part of Xandy’s answer at link http://superuser.com/questions/499675/how-to-restore-windows-8-gui-boot-loader-after-installing-windows-7
1. Open an elevated command prompt inside Windows 8, for example via +X and then A.
2. There run the following command:
bcdboot C:\Windows (C should be the letter for your Windows 8, change it if it’s not)
And it worked !!

 

Posted in Windows 8 | Leave a comment

How to configure a mail client for Outlook, Hotmail using IMAP

To configure your mail client to use IMAP, use the following settings:

Incoming IMAP

    • Server: imap-mail.outlook.com
    • Server port: 993
    • Encryption: SSL

Outgoing SMTP

    • Server: smtp-mail.outlook.com
    • Server port: 587
    • Encryption: TLS
Posted in Email | Leave a comment

NorthwindDataCache1SyncService – SyncDemo

This was done on Vista Ultimate/ Visual Studio 2008 Pro/ SQL Server 2008 SP3 environment.

When following the SyncDemo (found at

http://download.microsoft.com/download/6/7/3/6730f0e7-a649-4656-96ab-150c7501a583/IntroToSyncServicesADODetNet_HighQuality.wmv ) I got following error.

Error:

HTTP could not register URL http://+:8080/NorthwindDataCache1SyncService/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).

Solution:

Open Visual Studio command prompt as an administrator and run this command

netsh http add urlacl url=http://+:8080/ user=ComputerName\UserName

eg. netsh http add urlacl url=http://+:8080/ user=VistaUL\dush

Posted in Sync Framework | Leave a comment

How to Configure Windows 8 Hyper-V side by side with VirtualBox

I wanted to use my original Windows 7 and use other old programs I used in different version of Windows together with windows 8. Windows 8 Hyper-V is the best out of other virtualisation software for Windows XP and above operating systems. But to use other older Operating systems and Linux based operating systems we have to use other Virtualisation software. I used Oracle (sun) VirtualBox. But you can’t install other virtualisation software side-by side with Hyper-V. Surfing the web I only found one solution someone has done but it doesn’t work for some motherboards. So I came up with much easier solution.

Hyper-V

1 . Make sure you have full image backup.

This is very important because some motherboards setting will cause windows to hang after enabling hyper-V. I had the same issue with my Gigabyte GA-Z68X-UD3H-B3 motherboard. It has USB3.0 controllers enabled. This causes Windows 8 to hang. Even I updated BIOS to latest as suggested in a forum. So I have to disable USB3.0 controllers to get Hyper-V running. Then I added PCIExpress USB3.0 card to use with External backup drive, otherwise using USB2.0 take much longer time to backup.

2. If haven’t enabled Hyper-V just enable it from Control Panel and restart.

(Program and Features/ Turn Windows features on or off)

3. Configure Hyper-V guest Operating Systems

I have used my old Windows 7 image to configure Windows 7 as Hyper Guest OS. (This is not straight forward. There were lots of works around to get it to work. Probably I will write another blog for that)
Then I installed Windows XP pro and Vista Ultimate as the second and third Guest OS.
All are working well even I can access them using Remote Desktop.
Then I tried to install Windows 3.11 for work groups and Windows 95, windows 98. All 3 OS failed. Then I decided to use VirtualBox for those older operating systems. It didn’t allow installing Virtual Box due to Hyper-V.
Make sure you reboot the machine for once again and check whether all are working as expected.

4. Turn off Hyper-V from control panel and re-start.

5. Now install VirtualBox.

I used VirtualBox 4.2.6

6. Configure all other operating systems.

I installed Windows ME, Windows 3.1, windows 3.11 for workgroups

7. Test them re-boot, and play with old os etc.

8. Re-enable Hyper-V. Now you can run Hyper-V and VirtualBox side-byside.

9. Re-configure network Virtual switches using Virtual Switch Manager.

When you disable Hyper-V it will also remove the added External Virtual Switch. So you have to re-add it otherwise it will give an error.

10. Start Windows 7 from Hyper-V and even use remote desktop to access it, start Vista, XP etc.

11. Open VirtualBox, run Windows ME, 98, 95, 3.11

Note that Windows 3.11 had some mouse flickering issue.

Posted in Windows 8 | 2 Comments

Hide nopCommerce admin menu items based on permissions

After setting up nopCommerce sites you may need to give limited access to some users. First you need to create a new customer role eg. Managers.

Open Customers/ Customer Role and then add new and fill appropriate fields and save

Then in configuration/settings/General and miscellaneous settings/security settings tab enable “Hide admin menu items based on permissions”

Finally open Configuration/Access control list and tick the check boxes under newly added Managers role for items you wish to hide.

Then add or update relevant users giving Managers Role.

 

Posted in NopCommerce | Leave a comment

NopCommerce Installation for Australian sites

The dedault installation of nopCommerce only comes with US and Canada States and Territories pre-configured. To set up nopcommerce in Australia we have to customise the source code version or add them manually from the admin dashboad after the installation or add it from SQL Server Management Studio interface. In this blog I am going to expalin how to alter source code version so that we can use it for multiple Australian nopcommerce installations.

Step 1.

In the source code version insert a new line just above the line 1132 (in nopCommerce version 2.65, that is above var countries = new List<Country>)  to the file “InstallationService.cs” in folder “Libraries\Nop.Services\Installation” under “Nop.Services” project.

And add the following code:

// Australia

var cAustralia = new Country

{

Name = “Australia”,

AllowsBilling = true,

AllowsShipping = true,

TwoLetterIsoCode = “AU”,

ThreeLetterIsoCode = “AUS”,

NumericIsoCode = 36,

SubjectToVat = false,

DisplayOrder = 1,

Published = true

};

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Australian Capital Territory”,

Abbreviation = “ACT”,

Published = true,

DisplayOrder = 1,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “New South Walse”,

Abbreviation = “NSW”,

Published = true,

DisplayOrder = 2,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Northern Territory”,

Abbreviation = “NT”,

Published = true,

DisplayOrder = 3,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Queensland”,

Abbreviation = “QLD”,

Published = true,

DisplayOrder = 4,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “South Australia”,

Abbreviation = “SA”,

Published = true,

DisplayOrder = 5,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Tasmania”,

Abbreviation = “TAS”,

Published = true,

DisplayOrder = 6,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Victoria”,

Abbreviation = “VIC”,

Published = true,

DisplayOrder = 7,

});

cAustralia.StateProvinces.Add(new StateProvince()

{

Name = “Western Australia”,

Abbreviation = “WA”,

Published = true,

DisplayOrder = 8,

});

//—————–

Step 2.

Insert following line just above the line //other countries:

cAustralia,

//other countries

Step 3.

Comment the existing code for Australia

//new Country

//{

// Name = “Australia”,

// AllowsBilling = true,

// AllowsShipping = true,

// TwoLetterIsoCode = “AU”,

// ThreeLetterIsoCode = “AUS”,

// NumericIsoCode = 36,

// SubjectToVat = false,

// DisplayOrder = 100,

// Published = true

//},

Step 4.

Also change the function InstallLanguages() found in InstallationService.cs file located @ \Libraries\Nop.Services\Installation folder.

Original function

protected virtual void InstallLanguages()

{

var language = new Language

{

Name =“English”,

LanguageCulture =“en-US”,

UniqueSeoCode =“en”,

FlagImageFileName =“us.png”,

Published =true,

DisplayOrder = 1

};

_languageRepository.Insert(language);

}

Change to

protected virtual void InstallLanguages()

{

var language = new Language

{

Name =“English”,

LanguageCulture =“en-AU”,

UniqueSeoCode =“au”,

FlagImageFileName =“au.png”,

Published =true,

DisplayOrder = 1

};

_languageRepository.Insert(language);

}

 

 

Posted in NopCommerce | Leave a comment