Upgrading to TFS 2010 RTM when TFS is on port 80 with SharePoint

(Note: Please download the latest Installation Guide for Team Foundation and read the Upgrade sections for details on types of upgrades and steps to perform an upgrade to TFS 2010) 

Those of you going live on TFS 2010 Beta2 who opted to install TFS on port 80 using the existing SharePoint site will want to take note that upgrading to RTM will be a little sticky.  In RC/RTM TFS does not let you use an existing website.  You can still do it, but you have some work to do.

User Scenario:

User installs TFS 2010 Beta2 on port 80 with vdir using the existing Sharepoint site already on port 80. Install works fine. Now user wants to upgrade to TFS 2010 RTM.

 

Following the documented upgrade steps:

1. Uninstall TFS Beta2 and then .NET 4.0 Beta2

2. Install TFS 2010 RTM

3. Run Upgrade Wizard. Upgrade blocks on Readiness Checks Error:

a. TF255297: The Web site found has bindings that conflict with the bindings chosen for the Web site for Team Foundation Server. You must manually resolve the conflict between the bindings.

 

Root problem:

The RTM wizards do not let the user install TFS on an existing web site like the Beta2 wizards did. User wants to put TFS on the existing Sharepoint port 80 website but cannot do so.

NOTE: This only applies to Upgrade from Beta2. If you are installing TFS 2010 for the first time and you want TFS on port 80 with Sharepoint, you can do this simply by letting TFS install Sharepoint for you.

 

High-level workaround:

1. Delete Sharepoint’s Default Web Site on port 80

2. Upgrade to TFS 2010

3. Recreate Sharepoint’s default web application on the new TFS website on port 80

4. Fix up TFS SharePoint Extensions and Applications pools

 

Detailed Workaround Steps:

1. Delete the website on port 80

a. Open IIS Manager (Start->Run->inetmgr)

b. Delete the website on Port 80. It is typically named ‘Default Web Site’

c. NOTE: Do not delete the Web Application from SharePoint yet. If you do, then you’ll hit another Verify error about the missing web application and the fix is more painful.

d. Rerun the TFS Upgrade Readiness Checks which should pass.

e.  Ignore this warning that port 80 is still in use by Reporting Services. This is expected:

                                                               i. TF255150: Team Foundation Server cannot allocate the following TCP port: 80. The port is already in use by another application

2. Proceed with TFS 2010 RTM Upgrade.

a. You should see no Warnings or Errors from the Upgrade Wizard indicating that SharePoint is in a bad state.

b. Open TFS Admin Console and see that SharePoint Web Applications appears good. Extensions for SharePoint Products looks good too.

c. If you try to create a new Team Project at this point it will fail trying to create a SharePoint site. (TF252031)

3. Open Sharepoint Central Administration tool

                                                               i. Start->Administrative Tools -> Sharepoint 3.0 Central Administration

                                                             ii. Or https://localhost:17012, running Internet Explore As Administrator!

b. Click Application Management tab

4. Remember the Sharepoint Content database name

a. Click ‘Content databases’

b. Make note of Database Name value, typically ‘WSS_Content’

5. Delete the Sharepoint Web Application and Web site

a. Select the Web Application corresponding to the default web site, ie https://myServerName/

b. Click “Delete Web Application” link. 

c. DO NOT delete the content database! You’ll need to reattach it in the next step.

d. Choose to delete the web site too. (It’s already gone, deleted in step 1)

6. Create a new SharePoint Web Application on the TFS web site

a. Click “Create or extend Web application” link

b. Click ”Create a new Web application” link

c. Select ‘Use an existing IIS web site’ (Team Foundation Server)

d. Port: 80

e. Path: do whatever you want. Leave the default (under TFS) or go with something like D:\inetpub\wwwroot\wss\VirtualDirectories\80

f. Create new application pool

                                                               i. Pick a name or leave the default: ‘Sharepoint - 80’

g. Security account use Predefined Network Service (or whatever you want)

h. Database Name = ‘WSS_Content’ (or whatever original Sharepoint Content database was)

                                                               i. DO NOT let SharePoint create a new Database. You need to use your existing database that has all your Sharepoint data in it.

i. Use Windows authentication

j. Click OK button and let SharePoint create the Web Application.

7. Deploy TFS web application

a. Click ‘Operations’ tab

b. Click ‘Solution Management’ link

c. See tswawebpartcollection.wsp is marked ‘Not Deployed’

d. Click tswawebpartcollection.wsp to open the Solution Properties page.

e. Click ‘Deploy Solution’ and then click ‘OK’ to deploy it.

 

At this point, you can close the SharePoint Central Administration tool. SharePoint is correctly configured, but unfortunately configuring SharePoint horked TFS, switching the application pools out from under the TFS web sites. If you were to open the TFS Administration Console you would see under the Application Tier page that TFS is using the ‘SharePoint – 80’ application pool! Also TFS Web Access is too. We need to fix that now.

 

8. Fix TFS Web sites to use the TFS Application Pools

a. Open IIS Manager (Start->Run->inetmgr)

b. Under the local machine node, expand Sites node

c. Expand Team Foundation Server node

d. Right-click virtual directory ‘tfs’->Manage Application->Advanced Settings…

                                                               i. See Application Pool is set to ‘SharePoint – 80’

                                                             ii. Set Application Pool back to Team Foundation Server Application Pool

                                                            iii. Click OK

e. Expand virtual directory ‘tfs’. Right-click virtual directory ‘web’->Manage Application->Advanced Settings…

                                                               i. See Application Pool is set to ‘SharePoint – 80’

                                                             ii. Set Application Pool back to Team Foundation Server Web Access Application Pool

                                                            iii. Click OK

9. Reset IIS

a. From a console window running As Administrator: iisreset.exe

10. Repair TFS-SharePoint connections

a. Open TFS Administration Console

b. Navigate to Application Tier->SharePoint Web Applications

c. Select the SharePoint Web Application. 

d. Click ‘Repair Connection’ link on the right. 

e. Click Repair button in popup window.

f. See ‘Reconnect operation succeeded’ text in the status window.

g. Click Close button.

 

You’re done! TFS and Sharepoint are happy again.