Local/Development machine setup

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
AngelFactor
Ensign (ENS)
Ensign (ENS)
Posts: 9
Joined: Sun Mar 02, 2008 3:43 am
Location: Las Vegas, NV

Local/Development machine setup

Post by AngelFactor » Sun May 04, 2008 1:06 am

It would be greatly appreciated if someone could point out how to set up a local/dev site on my local XP PC.

The initial intention was to go with Dreamweaver, but ASP.NET will no longer be included, or supported, by Adobe starting with CS4. I suppose Adobe calls that progress. Alas, I digress.

I’ve installed the IIS, Visual Web Developer, SQL Express, and C# Express to my local XP machine. After using a number of books and website suggestions, it just isn't working for me. I've got the IIS running and can connect to the db, but can't get it all going locally.

How do I connect everything to have a functional local site to work with and see what it will look like locally before uploading any changes to the live site?

Thanks.

User avatar
AbleMods
Master Yoda
Master Yoda
Posts: 5170
Joined: Wed Sep 26, 2007 5:47 am
Location: Fort Myers, Florida USA

Re: Local/Development machine setup

Post by AbleMods » Sun May 04, 2008 6:54 am

Great question! I don't think this has been documented yet so I'll give it a shot.

Configuring a local development install of AC7
A local dev install is pretty similar to a full IIS deployment. The main battle is in how OS permissions are handled.

From your original post, it sounds like you've got all the basics started well. VWD is installed, SQL 2005 Express is going and you can connect to the db. We'll check IIS a little later. Windows XP Professional is required because XP Home lacks the local file permissions functionality necessary to host .Net web sites.

Permissions
Let's start with the first step, permissions. Find your site folder and right-click/properties. Hit the Security tab. Make sure you have the user ASPNET listed with full permissions. Click the Advanced button and click the "Replace permissions on the..." checkbox. Choose apply. This will force WinXP to re-apply the currently listed permissions to every file and sub-folder in your site. Failure to do so will result in IIS being able to see the root pages of your site but not anything beneath it.
It's important to note that WinXP does not do permissions inheritence like Win2K3 does. When you add a new file to WinXP folder, it inherits a different set of permissions than what is already assigned to the folder. So keep in mind that you will need to repeat this first step if you add new files to the site outside of VWD. I'd explain it better, but it all depends on how the new file is created and under what context it was created. Another topic for another time...

IIS Setup
Now let's go over IIS setup. I assume you've already created a folder and have all the store files located in it. You've got IIS installed, but we need to make sure it's configured properly for a .Net 2.0 application.
First, open your Internet Information Services Manager. Expand the Local Computer and then the Web Sites folder. You should see one site, "Default Web Site". WinXP keeps all locally hosted websites in a single "virtual site", unlike Win2K3 which allows multiple virtual site folders. Expand "Default Web Site".

Now, if you don't have your website listed here then we need to add it. Just right-click "Default Web Site", choose New and choose Virtual Directory. Follow the wizard prompts and specify an alias of your choosing(a site name to distinguish between different hosted sites). For the purposes of this document, let's use the word "Solunar" but you can use anything you want. Now choose the local path to the site, click next and leave the permissions alone - those don't matter for our purposes. Click Finish and your newly-minted virtual directory is listed (and active) on your IIS install.

If we've already got it added or you just added it, right-click and choose properties so we can verify settings. First things first, go to the Documents tab and make sure "Default.aspx" is added and the first document listed. If it's not, add it and use the arrows to re-position it to be the first document in the list. This makes sure that IIS always looks for a default.aspx page before any other page in a website.

Now click the Home Directory tab and make sure the Application Name field has something in it and the button next to it says "Remove". If it doesn't just click the "Create" button, IIS should populate the Application Name field with the site alias you specified earlier. What you just did is tell IIS that this website is to be treated as a full .Net application instead of a bunch of individual HTML/ASP pages.

Next click the Directory Security tab and the first button for Authentication Control. Make sure "Anonymous Access" is checked (leave the rest alone, WinXP will set the proper defaults for you) and be sure to check Integrated Windows Authentication at the bottom. This is critical if you want to use the VWD debugger...and you will ;)

Hit the OK button and choose the ASP.Net tab. Here we just need to make sure the ASP.Net version is set to 2.x. That's it - hit OK and you'll be returned to the virtual directory listing. At this point I usually Restart IIS just to be clean - Right click the Local Computer icon, choose All Tasks and select "Restart IIS". WinXP will restart all IIS services for you. Close IIS Manager, we're done with it. Consider adding a shortcut to it to your desktop, it comes in handy when debugging so you can quickly restart IIS in the event a file or page has locked, stuck in a loop etc.

AC7 Licensing
Now we get to the fun part. If you've copied your site from a live environment, it was probably already licensed. Able licensing is such that the HTTP engine will automatically redirect to the live site domain, even if the site is hosted on a completely different host name. This makes for a good copy protection scheme but makes for a bad developer install. To force AC7 to "think" it's a fresh install from a license perspective, just rename the CommerceBuilder.lic file in the ~/App_Data/ folder to CommerceBuilder.old.

If the install wasn't licensed, you're probably running in demo and you're ready to go.

Hit the site
Every web server can be contacted in two ways. You can hit with a domain name, or you can it with a straight IP address. Since you're most-likely not hosting DNS on your home/development PC, we'll go the IP address route for the purposes of this document. Let's assume your development PC has an IP address of 192.168.1.100 today. I use the word "today" because it is probably dynamic, so technically it could change on you. But that's ok, you'll know it pretty quick because the site won't come up at all.

To determine your current IP address, just open a Command Prompt window and enter IPCONFIG. WinXP will tell your your IP right there.

Let's see if the site works - open your web browser, type the address http://192.168.1.100/solunar/ and press enter. You should see your hard drive light go crazy, that's IIS compiling the entire AC7 site into more efficient web-server language. Depending on your PC oomph, this could take 3 minutes or longer. My PC takes about 6 seconds, but I spent $3,000 custom-building it for this very purpose 8)

If it doesn't load, don't panic: Just wait 3-5 minutes until either the home page appears or the hard drive stops going crazy. Now try hitting the site again with the same URL, it should come up pretty quickly since now it's been compiled, like 5-10 seconds at the most.

Opening the site in VWD
Fire up your copy of VWD. Select File, Open Web Site. Choose the Local IIS option on the left side. VWD should now connect to your local IIS install and show you the available aliases currently being hosted. Select the "Solunar" one and click OK. VWD should now open the site and you can begin development work.

Troubleshooting
There are several things that can keep the site from loading locally. I'll cover the most common possibilities here and expand the post as more are confirmed.

1. You didn't wait long enough. IIS on WinXP isn't known for speed, especially now that you've loaded a full SQL database engine and still have all the other stuff your PC was doing. Give it 5 minutes and relaunch the home page, your PC might just be underpowered for what you're trying to do.

2. You copied your DB from a live install with SSL enabled. You're not hosting an SSL certificate locally so AC7 redirects any secure logins to a (now) invalid URL. This is easy to fix, just open your SQL Manager, open the AC_StoreSettings table and set the SSL Enabled flag to "false".

3. You copied a live license file when you copied the live install down to your WinXP development machine. The AC7 HTTP engine will automatically redirect to the licensed domain even if the host server is running on a different domain or IP. This is also easy to fix. Just rename the ~/App_Data/CommerceBuilder.lic file to CommerceBuilder.old. now AC7 thinks it's a fresh install (from a license perspective) and reverts to unlicensed mode. Follow the Able installation documentation on how to license a development copy or activate the "demo" mode (new to RC3).

4. Port 80 is already in use. IIS hosts websites on TCP/IP port 80 by default. If you have other software running on your PC that is listening on port 80, IIS can't snag the port. This will require more advanced troubleshooting and cannot be covered in this document.

Conclusion
There are several steps to configuring a local development install of any .Net application. The trick is knowing what steps to accomplish and in what order. It's a really, really good idea to make a full system backup both before and after you begin this task. As you begin development work on your install, regular backups ensure hard-earned programming work isn't lost to the 1:30am accidental right-click/delete syndrome. Trust me on that one ;)
Last edited by AbleMods on Sun May 04, 2008 7:04 am, edited 1 time in total.
Joe Payne
AbleCommerce Custom Programming and Modules http://www.AbleMods.com/
AbleCommerce Hosting http://www.AbleModsHosting.com/
Precise Fishing and Hunting Time Tables http://www.Solunar.com

User avatar
AbleMods
Master Yoda
Master Yoda
Posts: 5170
Joined: Wed Sep 26, 2007 5:47 am
Location: Fort Myers, Florida USA

Re: Local/Development machine setup

Post by AbleMods » Sun May 04, 2008 6:55 am

By the way, you won't need C# Express - VWD supports both VB and C# for coding, so it's all you need for modifying/developing pages and code in ASP.Net.
Joe Payne
AbleCommerce Custom Programming and Modules http://www.AbleMods.com/
AbleCommerce Hosting http://www.AbleModsHosting.com/
Precise Fishing and Hunting Time Tables http://www.Solunar.com

AngelFactor
Ensign (ENS)
Ensign (ENS)
Posts: 9
Joined: Sun Mar 02, 2008 3:43 am
Location: Las Vegas, NV

Re: Local/Development machine setup

Post by AngelFactor » Wed May 07, 2008 1:58 pm

It seems like I patch one file and another one wants attention. At the moment, I keep getting hit with this:

Server Error in '/stts' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Failed to decrypt using provider 'DataProtectionConfigurationProvider'. Error message from the provider: Key not valid for use in specified state. (Exception from HRESULT: 0x8009000B)

Source Error:

Line 1: <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
Line 2: <EncryptedData>
Line 3: <CipherData>
Line 4: <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAEGnILnECLkKSF+b0Zx+sDAQAAAACAAAAAAADZgAAqAAAABAAAAA2Lng+48K/+33Bq1pfTFLVAAAAAASAAACgAAAAEAAAALBpZOvMqQ/BR+H0Dk0/RUYwAgAAGTCHc3+PMTZ3y8QLZ5hh9x86bbHrxlUBcXzMnwOuCazfXdQzDG2NYsZkGTVUIIrlwSE6UCb0je6aq6TXFcmkSJnMo6mqAkuaUsN1YNcR87tbln9knmHiooYSBkJvp2U17+L6n6UZIJiByb2mfNH+gY8Wh6GGOiQL4TP0HP0OXyRc0s80EJ3OKSv7K/87ODXjz92XscSvuqLvyWhH3QD3jKRBy7GkYFuj60xtkBCN+eruSZoSFfcYYi8+k+PfDAo1YfoM2VHFEimz4/WYgir370U5Ue5IfdZ6KecKrjsxwmbZ9bcf9VMi4H5sKMtRzHX6jQ/1P062rnG4XTknVU1XdCM4621tUoTWPs3PUzdgx0I0k7C+W3+hnHEQ+8j/UG3S/2AXYkVOEGv+/D08gykzc8tuc6JSKvPiuzoCCm6Qnzoghr/B7sUp+DnafyyQR0+sGGkz9gvrsnEfgqensgAgUPdicmjxZ0yBYK5Ve21b7I/H0KsKzb5o1iYK+qkpzvw2hV65VzQHdBY7on1ttKed9Yil1L/NGW43VTAyPFdkQeCjI8q198L9j1CH0/RKq/g6oJJ+2byfCz0F1lTvwok7YJizPCQdlxq0DD85AoZwbXBI3aYBejw7sgvbEPUG/Z+EdKg9SbQwAypF/CP46Ay5qjpzPDut2xDdoylXa9X/R+mYJsFWvzvV6k1PEMUkTNHtzBFW0nirRy4sP0s24Ryp+zaKkADLrj5XyPLoWuwfvkEUAAAAKOAcPwTSwW2MJ7/QGjkNJqftioo=</CipherValue>


Source File: C:\Inetpub\wwwroot\stts\App_Data\database.config Line: 2

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

#####
How do I go about getting it to decipher the encrypted data? If it is one of those too simple fixes that is fine, I have tried too many already.

User avatar
AbleMods
Master Yoda
Master Yoda
Posts: 5170
Joined: Wed Sep 26, 2007 5:47 am
Location: Fort Myers, Florida USA

Re: Local/Development machine setup

Post by AbleMods » Wed May 07, 2008 3:05 pm

If you can get into the Admin site without error, go to the Security, Encryption setup and enter a new encryption key.
Joe Payne
AbleCommerce Custom Programming and Modules http://www.AbleMods.com/
AbleCommerce Hosting http://www.AbleModsHosting.com/
Precise Fishing and Hunting Time Tables http://www.Solunar.com

krissato
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 26
Joined: Tue May 13, 2008 7:26 pm

Re: Local/Development machine setup

Post by krissato » Wed May 21, 2008 12:16 pm

I am getting this same error when I try to run the AbleCommerce site from my local machine.

I have the 30 day trial of AbleCommerce installed on our server, and I can run it from there fine. I was able the change the encryption key running from the server.

Locally, I have created a VS 2008 solution and made a copy of all the AbleCommerce files, using the same web.config that is used on the server. When I run from VS (so I can debug) I get that encryption error.

I have run a number of other websites in this same way successfully - make a copy of all files locally and run in VS 2008.

Is there a problem with doing it this way for the encryption to work properly?

Thanks,
Kris

krissato
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 26
Joined: Tue May 13, 2008 7:26 pm

Re: Local/Development machine setup

Post by krissato » Wed May 21, 2008 3:04 pm

Figured it out... turns out this error is not related to the AbleCommerce encryption key...

Found the solution at this link:

http://msdn.microsoft.com/en-us/library/ms998283.aspx

I needed to copy the MachineKey from the server to my local machine at
\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

in order for the decryption to work.

Kris

krissato
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 26
Joined: Tue May 13, 2008 7:26 pm

Re: Local/Development machine setup

Post by krissato » Wed May 21, 2008 3:28 pm

Actually, I ended up deleting the connectionString section and replacing with my own, since the original one did not have any settings in it.

Kris

kwikstand
Commodore (COMO)
Commodore (COMO)
Posts: 410
Joined: Mon Feb 19, 2007 8:12 pm
Contact:

Re: Local/Development machine setup

Post by kwikstand » Mon Nov 10, 2008 12:21 pm

I have been having the same problem. How do I copy the machine key from the server? Is it even possible being that I am using a hoseted server?

How do I delete the connection string?

Any help would be greatly appreciated.

Thanks,
Scott
http://www.contractors-solutions.net

User avatar
jmestep
AbleCommerce Angel
Posts: 8164
Joined: Sun Feb 29, 2004 8:04 pm
Location: Dayton, OH
Contact:

Re: Local/Development machine setup

Post by jmestep » Mon Nov 10, 2008 1:37 pm

You can create one and put it into your web.config on your shared hoster. If you use an independent key like that, you can move the site from server to server without having a problem with it.

Go to this link: http://aspnetresources.com/tools/keycreator.aspx

Leave the defaults in place, validation key length 64, encryption key length 24, type sha1. Click Generate to create a random machine key for you and copy the result.

Now open the web.config file from your site. Find around line 33 where it shows:

<system.web>

And paste in the <machineKey ... /> on the next line. Save that file.
Judy Estep
Web Developer
jestep@web2market.com
http://www.web2market.com
708-653-3100 x209
New search report plugin for business intelligence:
http://www.web2market.com/Search-Report ... -P154.aspx

User avatar
AbleMods
Master Yoda
Master Yoda
Posts: 5170
Joined: Wed Sep 26, 2007 5:47 am
Location: Fort Myers, Florida USA

Re: Local/Development machine setup

Post by AbleMods » Mon Nov 10, 2008 2:26 pm

Slightly off the record...but doesn't that essentially defeat the whole machine-based encryption security feature of IIS??
Joe Payne
AbleCommerce Custom Programming and Modules http://www.AbleMods.com/
AbleCommerce Hosting http://www.AbleModsHosting.com/
Precise Fishing and Hunting Time Tables http://www.Solunar.com

kwikstand
Commodore (COMO)
Commodore (COMO)
Posts: 410
Joined: Mon Feb 19, 2007 8:12 pm
Contact:

Re: Local/Development machine setup

Post by kwikstand » Mon Nov 10, 2008 2:51 pm

First I want to thank you for the help and the quick response, but....

I tried it and it still doesn't work. When I try to view in a browser I get the error:

Image

http://www.contractors-solutions.net/ServerError.jpg

What could I be doing wrong?

Thanks again,

Scott
http://www.contractors-solutions.net

User avatar
jmestep
AbleCommerce Angel
Posts: 8164
Joined: Sun Feb 29, 2004 8:04 pm
Location: Dayton, OH
Contact:

Re: Local/Development machine setup

Post by jmestep » Mon Nov 10, 2008 5:36 pm

Slightly off the record...but doesn't that essentially defeat the whole machine-based encryption security feature of IIS??
I don't know, I was just doing what Logan told me. :( It is the only way we could get encryption to work at a shared hoster and I've also read that if you are running your sites load-balanced on different servers, they have to have the same machine key.
Judy Estep
Web Developer
jestep@web2market.com
http://www.web2market.com
708-653-3100 x209
New search report plugin for business intelligence:
http://www.web2market.com/Search-Report ... -P154.aspx

User avatar
jmestep
AbleCommerce Angel
Posts: 8164
Joined: Sun Feb 29, 2004 8:04 pm
Location: Dayton, OH
Contact:

Re: Local/Development machine setup

Post by jmestep » Mon Nov 10, 2008 5:37 pm

What page were you trying to view when you got the error?
Judy Estep
Web Developer
jestep@web2market.com
http://www.web2market.com
708-653-3100 x209
New search report plugin for business intelligence:
http://www.web2market.com/Search-Report ... -P154.aspx

kwikstand
Commodore (COMO)
Commodore (COMO)
Posts: 410
Joined: Mon Feb 19, 2007 8:12 pm
Contact:

Re: Local/Development machine setup

Post by kwikstand » Mon Nov 10, 2008 6:04 pm

It doesn't matter what page I try to view, I get the same reult. I usually start by simply loading the default page. Source view comes up in VBD, but when I try to view it in a browser, I get thr dreaded error. I have tried this with the product page and category page as well.

User avatar
WylieE
Captain (CAPT)
Captain (CAPT)
Posts: 281
Joined: Tue Mar 25, 2008 8:26 am
Location: Puyallup, WA
Contact:

Re: Local/Development machine setup

Post by WylieE » Thu Dec 18, 2008 1:09 pm

jmestep wrote:You can create one and put it into your web.config on your shared hoster. If you use an independent key like that, you can move the site from server to server without having a problem with it.

Go to this link: http://aspnetresources.com/tools/keycreator.aspx

Leave the defaults in place, validation key length 64, encryption key length 24, type sha1. Click Generate to create a random machine key for you and copy the result.

Now open the web.config file from your site. Find around line 33 where it shows:

<system.web>

And paste in the <machineKey ... /> on the next line. Save that file.
Just to make sure I understand the process correctly:

1.) Generate the machine key and add it to your web.config. Use the same machine key on your dev/production servers.
2.) Generate your encryption key and use the same key on the above servers.

If this is done, is there still a need to unencrypt db info when pushing new data from development to production?
Eric Wylie
Warmoth Guitar Products, Inc.
http://www.warmoth.com

Post Reply