I was able to resolve this issue. Here is the problem and solution:
The issue here is IIS is running under a different user account than the user account ACT database is created. In order to open ACT database you need to use the same user account under which ACT database is created. In my scenario I created ACT database using administrator account. Hence I need to run the IIS virtual directory using this administrator account so that the IIS account will have access to the "ACT\ACT Data\Preferences" folder.
I changed application pool to use administrator as the app pool identity (be carefull running IIS under administrator account). If this does not work, then you may have to choose the app pool option to load profile. Also if you are in a 64 bit os then you need to set app pool to run 32 bit applictions.