Saturday, 29 December 2007

Ajax and Converted VS2003 Web Apps

We couldn't get AJAX to work on any applications converted from VS2003 to VS2008 (running .Net 3.5). All the code made post backs instead of running AJAX in update pannels. After a line by line rip apart of the web.config we tracked it down to
. Searching the net Scott Guthrie has written a post explaining this.

Tuesday, 11 December 2007

Install Vista from External USB Harddisk or Memory Stick

I was working on a new machine which needed Vista installing but it had no DVD drive.

You can install Vista directly from external media either a USB drive or an external USB hard disk. The install is at least twice as fast from a USB hard disk. Taking around 10-15 minutes including making a coffee.

  1. Anyway-firstly configure your target machine to boot from USB, set the boot order after your internal drive, otherwise you'll need to unplug the installation drive when the installer reboots the machine.
  2. On another Vista machine, pop your USB stick (it needs to be 4GB as the Vista DVD is 2.6GB) or USB harddisk into the USB port.
  3. Run a commend prompt and run the utility diskpart
  4. Retrieve a list of drives attached to the system using 'list disk', make a note of the number corresponding to your external media. Make sure you get the right one as picking another drive will lead to data loss.
  5. Run 'select disk <x>' where x is your drive number e.g. 'select disk 4'
  6. Run the following commands

    create partition primary 3096
    select partition 1
    format fs=fat32
  7. The assign command will give the drive the next available drive letter so it will now appear in My Computer
  8. Copy the contents of a Vista DVD onto the new drive. You can use XCOPY to do this e.g.
    xcopy :\*.* /s /e /f :\
    Where is the drive letter containing the Vista DVD and externaldriveis your newly assigned drive letter. e.g. xcopy e:\*.* /s /e /f f:\
  9. Plug the USB device into the target machine and boot it. Assuming your boot order is set correctly in the BIOS the Vista installation will run from the external media.

Saturday, 28 April 2007

New Site

We've launched a new site which focuses on our eCommerce and retail solutions.

Missing ASP.NET tab on Windows x64 Servers

We've been creating ASP 2.0 applications and the first a new version of our eCommerce to RMS link software was ready to be deployed from our development servers to our production machines. We use a pair of AMD based IBM x326 servers as our front end web servers. Once we'd installed the x64 .net runtime, we realised that the ASP.NET pane had not appeared in the IIS management console when viewing a virtual directory. We've seen this before on x86 and normally running aspnet_regiis.exe -i from the .Net 2.0 framework directory would resolve this problem.
However further digging around made us realise that the 'snap in' which makes this appear does not work on x64, and at the current point in time Microsoft have no intention of fixing this. As such you need to install the scripts manually using the aspnet_regiis -sn command.

e.g. aspnet_regiis -sn

This is documented in some more detail here. However being more of a developer than an IIS admin the 'path to application' threw us. We have in the region of a hundred sites on this server so finding the path is a little tricky. I couldn't find all the steps required to get ASP 2.0 working in one place.

Firstly create a new virtual directory in IIS and create an application. You also need to specify and application pool, this must be an application pool which does not contain any .Net 1.1 applications as they can't both exist in the same pool. Whichever is called first (1.1 or 2.0) will lock the application and the other applications will fail with a cryptic service not available error.

To find the path of the application Microsoft recommend you use METAEdit

To find it the path we installed META Edit 2.2. Browsed to LM, W3SVC and then our site identifier (which can be found in IIS see screenshots below), then the virtual directory name in this case rmsLinkv3WebService.

As such you end up with aspnet_regiis -sn W3SVC/102785756/ROOT/rmsLinkv3WebService. This will install the ASP2.0 scripts and you can happy install your application.

Wednesday, 25 April 2007

Vista Network Printing UAC - Windows cannot connect to the printer. The specified print monitor is unknown

More vista woes - We've been installing network printers on our Vista machines and on some machines we recieve the following error "Windows cannot connect to the printer. The specified print monitor is unknown". Yet on other machines it works fine. We pinned this down to developer machines, we disable UAC to get Visual Studio to work properly.

Searching the net it became clear that network printers can't install unless UAC is enabled, which requires a two reboots. One to enable UAC and install the printer, the second to disable UAC and continue work in Visual Studio 2003. Frustrating, but there seems to be no other work around.


Friday, 13 April 2007

.Net 1.1 vs .Net 2.0 Performance

We've been on the hunt for information on the performance differences between ASP 1.1 and ASP2.0. I've hunted around the Internet for information on the differences in speed between the two architectures, however very little information seems to be available.

The closest I've found is the following Microsoft article however this seem a little like PR (reads like a Gartner "rent a quote" report) rather than real life observations. Is anyone aware of articles with independent testing of the throughput of a 'normalish' web based application. For example an eCommerce or CMS system. We are aware that 2.0 applications start far faster, but our sites are constantly accessed so this is less of an issue. More importantly are we likely to increase or decrease load on our server farm as we migrate to 2.0. Are our customers going to get a faster experience or is it much of a muchness with better controls and development environments?


Thursday, 12 April 2007

Froogle UK Woes and Solutions

We've been working on listing products for Board-Lifestyle on Froogle. We have several feeds to Froogle for other UK companies and all have been fairly painless to setup other than writing the SQL to extract products records from our eCommerce system which is based around a UK customised version of Storefront. This has lead to a good volume of business for our clients.

This time its been very frustrating as we've had to work around some of the new features in Base (which is Froogle's underlying technology).

Firstly its important to stay on the UK version of base, as some of the links inside Base actually hard link to the US site. This makes it appear as if your products are appearing and disappearing from the Base system as you hop between the two sites. This has caused us no small amount of grief as we've uploaded the same bulk upload to both the US and UK systems. The upshot is to make sure have the address in the address bar at all times, and keep and eye out for changes as it will revert to the .com domain as you navigate around the user interface. Submission of a UK feed to the US base site will see it disapproved.

The other areas which have caught us out are the new attributes which Base suggests. Location appears as a recommended field, however reading posts on the Google Groups, this seems to setup the feed as a Froogle.local feed and excludes them from the main Froogle results. We have reworked the file and we'll see how we get on!

I'm a hugh fan of Google, but some of their technology has a decidedly half finished feel to it, with items remaining in Beta for extended periods of time and lacking key features. If they really are to threaten Microsoft and deliver 'software as a service' they have a lot to learn about easy of use and debugging. For example the SSL certificate on the .uk URL's is a .COM SSL certificate which drives IE and Firefox crazy with security warnings and its been like this for at least a year!


Monday, 9 April 2007

Visual Studio 2003 Web Project to Visual Studio 2005 Migration

We've tried this in the past using the inbuilt VS2005 migration tool and it lead to hundreds of errors when it attempted to restructure our eCommerce project.

However Microsoft have released a new tool which is documented at which allows you to retain the file structure of the 2003 project. Having ran this tool our projects converted with only one code change.

Happy days!


Sunday, 8 April 2007

Visual Studio 2003 Web Debugging on Vista

We are trying to move our development setups onto new equipment running Vista. I know we could use Virtual PC which is Microsoft's suggestion, but we all use laptops and the disk overhead would be a pain.

Anyway after much messing around and reading of other peoples Blog's here's how I made it work.

Firstly setup your user account as a local admin on the Vista machine and switch off the dreaded "user account control". Obviously you need to know what your doing when if you are going to do this, but I'm assuming most developers understand a little about computer security. This step seems essential to get Visual Studio 2003 working.

Next make sure IIS is installed and you have selected the "IIS 6.0 management compatibility option".

After this we installed VS2003, it will warn you about the lack of Frontpage Extensions, skip the warning.

Once VS is installed you need to ensure your user account is included in the Debugger User group.

Next I followed the steps outlined in the following Blog

However once this was completed we needed to change a few more settings before we could get IIS working with Visual Studio. The first was to adjust ISAPI and CGI restrictions which had removed access to ASP 1.1. We had been getting the somewhat cryptic error

"HTTP Error 404.2 - Not Found
Description: The page you are requesting cannot be served because of the ISAPI and CGI Restriction list settings on the Web server."

This occurred when attempting to run any ASP 1.1 web applications.

To achieve this go into IIS 7.0 manager and select your server, which is the top level on the left hand side. Select ISAPI and CGI restrictions and ensure ASP v1.1 has the restriction set to Allowed.

Finally we created a new 1.1 web application via Visual Studio, thus creating a new virtual directory in IIS. At this stage you should just need to setup the resulting virtual directory correctly in IIS.

To achieve this involved editing ASP and Authentication settings. Inside ASP properties I edited the debugging section to allow server and client side debugging. In Authentication I allowed Windows authentication.

Its worth noting that some of the options in the IIS7 manager put entries in the web.config which are not compatible with the 1.1 run time. For example I changed the default page and this put entries in the web.config which resulted in server errors.

IIS 7 looks good, but there is clearly a lot of new stuff to learn, and some worrying incompatibilities introduced by the new Vista security model.

In summary it appears possible to use IIS 7 and VS 2003 to build and more importantly debug web applications. The next step is to load up our eCommerce application in VS2003 and look at stability and speed before we start to use Vista to write production code. I'll post again once we have some real world experience.