Feeds:
Posts
Comments

Archive for August 4th, 2008

Yes, this is it! the new site went live this evening although you may still be seeing the old one until the Domain Name Servers around the Internet get updated with the new location.

Sorry for another computer-technical post, but after spending a lot of energy on a couple of problems I had setting up the new site, it would definitely be a shame not to share them. These tips are very specific to Lunarpages and the second one is even more specific to my site, but just in case you run into this as otherwise you could spend hours and not even get to the bottom of it.

My first problem was in setting up my database server. Turns out that the excellent myLittleAdmin interface that Lunarpages provide to manage your MS SQL Server 2005 database is not accessed through the Plesk control panel but via a separate URL. However (and this is the important bit) you still need to create your first database through the Plesk interface and add your users at the SQL server level in order to be able login to the admin interface. This is kind of logical when you think about it because this is what you do in fact when you set up users on your database with Management Studio. First you add them to the server and then select them and add them to the database.

The second problem was a more difficult one. I have an AJAX page method call on my homepage that makes an asynchronous call to the RSS of this blog as soon as the HTML comes up but while the page is loading. This is to prevent the page taking time to load just because of delay retrieving the RSS while rendering the page server-side.

Anyway this wasn’t working. I started looking into it and found that the page method was returning the full HTML of the page instead of the string of HTML rendering of the RSS. It was as if the callback was ignoring the method call and just re-calling the page. After a while I got the idea of checking with Fiddler (an incredibly useful tool when debugging AJAX code) what the difference was between the requests that the AJAX code was sending in my test site and that which it was sending on the production server.

It turned out that what was happening was this. I was viewing the site through the site preview URL that Lunarpages had given me because I didn’t want to switch the DNS until I was certain the site was up and running. What the site preview was doing was sending a 301 redirection for every request I sent with a modified URL. AJAX Callbacks like regular ASP.Net postbacks are sent as HTTP Posts. When the browser receives the 301 back, it resends but this time as an HTTP Get and without any of the posted fields and therefore the callback isn’t made. Instead the server renders the page again and sends it back to client. Below is the HTTP conversation that was going on (with a few bit blanked out for privacy/security):

POST /Default.aspx/GetRSS HTTP/1.1
Accept: */*
Accept-Language: en-us,he;q=0.5
Referer: http://xxxxxx.lunarmania.com/$sitepreview/rafistern.com/
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; WWTClient2; MS-RTC LM 8)
Host: xxxxxx.lunarmania.com
Content-Length: 0
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

----------------------------------

HTTP/1.1 301 Moved Permanently
Via: 1.1 Address Is Hidden
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 21
Date: Mon, 04 Aug 2008 09:34:50 GMT
Location: /$sitepreview/rafistern.com/Default.aspx/GetRSS
Content-Type: text/html
Server: Microsoft-IIS/6.0301

Moved Permanently

----------------------------------

GET /$sitepreview/rafistern.com/Default.aspx/GetRSS HTTP/1.1
Accept: */*
Accept-Language: en-us,he;q=0.5
Referer: http://xxxxxx.lunarmania.com/$sitepreview/rafistern.com/
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; WWTClient2; MS-RTC LM 8)
Host: xxxxxx.lunarmania.com
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

----------------------------------

HTTP/1.1 200 OK
Via: 1.1 Address Is Hidden
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 14435
Date: Mon, 04 Aug 2008 09:34:51 GMT
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-Powered-By: PleskWin
X-AspNet-Version: 2.0.50727
Set-Cookie: xxxxxxxxxxxxxxxx; expires=Tue, 04-Aug-2009 09:34:51 GMT; path=/
Set-Cookie: xxxxxxxxxxxxxxxx; expires=Tue, 04-Aug-2009 07:00:00 GMT; path=/
Cache-Control: no-cache
Set-cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/

<html>xxxxxxxxxxxxxxxxx</html>

After I worked that one out, I decided to go live and that decision proved to be right as the site is now live and working just great.

Advertisements

Read Full Post »