Hi folks-
Around February 2009, while implementing a MOSS farm for a client we experienced a nerve racking situation regarding appending default.aspx at the end of our URLs. We spent a couple of days trying to research and figure out what was wrong till we called MS Premier Support and viola! Microsoft gave us a hotfix to resolve a bug that was applied when installing the SharePoint Infrastructure Update.
More specifically, here was our scenario:
The client is using port 31000 for a SharePoint web application. However, the web application is fronted by a load balancer where users will browse to the web application via port 80. So the path through the balancer is
Client uses http://url:80 -> load balancer -> IPaddress:31000 on the WFE
Instead of managing multiple dedicated IP addresses or host headers, the client uses the same IP address on the server but different ports for each respective web application: 31000, 31001, 31002, etc.
The environment was: MOSS 2007 SP1 w/Infra Update, Windows 2008/IIS7, IE6/7 client, CSS load balancer.
Alternate access mappings:
| Internal http://intranet.mysite.com -> Public http://intranet.mysite.com default |
| Internal http://intranet.mysite.com:31000 -> Public http://intranet.mysite.com default |
The Issue:
What was happening was when a user browses to the load balanced URL, such as http://intranet.mysite.com/sites/test/default.aspx the user will get the site just fine. HOWEVER, when the user browses to http://intranet.mysite.com/sites/test, without the default.aspx at the end, the user gets the IE error
| Internet Explorer cannot display the webpage |
| Most likely causes: |
| - You are not connected to the Internet. |
| - The website is encountering problems. |
| - There might be a typing error in the address. |
On the client machine, we were running HTTPwatch to watch the HTTP traffic. We were seeing that when browsing to http://intranet.mysite.com/sites/test there is then a redirect 302 to http://intranet.mysite.com:31000/sites/test/default.aspx. We noticed that something (WSS or load balancer) appended the 31000 port number to the load balanced URL, which is incorrect.
When we bypass the load balancer with http://intranet.mysite.com/sites/test, it will get users to the site fine and will append default.aspx automatically as it should.
The solution
This issue was fixed with a Microsoft Hotfix. More specifically with this hotfix: http://support.microsoft.com/kb/956248 we got from MS Premier Support. The SharePoint Infrastructure Update actually applies a bug to the farm that causes the issue. The hotfix article describes the issue it is resolving quite simply as:
“When you install the Infrastructure Update in a SharePoint farm that uses Alternate Access Mapping with a reverse proxy or with a network load balancer, such as in an extranet deployment, some public URLs may become unresponsive…”
You may never run across this issue if your client uses host headers with one IP (port 80), dedicated IP addresses (port 80) or doesn’t have an extranet implementation. This specific client I worked with uses the same IP address with different port addresses on the WFEs and users accessing the sites over port 80 through a load balancer, as I mentioned earlier.
Very important, you must also have two Alternate Access Mappings as you see below in my case:
| Internal http://intranet.mysite.com -> Public http://intranet.mysite.com default |
| Internal http://intranet.mysite.com:31000 -> Public http://intranet.mysite.com default |
Hopefully, you do not go through this as we did – we lost a couple of days to troubleshoot it. So, I’m sharing this with you. Since this was a Microsoft bug, our client got their MS Premier Support hours back, but we didn’t get the lost hours of our lives back ;-)