Creating a PSI Extension for Project Server 2010

This post refers to the Project 2010 SDK Sep 2010 Update.

01-Creating-a-PSI-Extension-for-Project-Server-2010-SDK

This updates contains to sample PSI Extensions.  The ‘Hello World’ and the ‘ListProjects’ examples. Missing from the accompaning documentation is the following:

1) You need to include the System.Web reference not only in the ‘using’ statement but in the list of referenced external libraries.

03-Creating-a-PSI-Extension-for-Project-Server-2010-Reference

2) There is a bug in the GetServiceUri function of the Hello  World PSI extension.  A variable is declared with the name requestUri but referenced as requestUrl (with an L at the end) inside the function.  

02-Creating-a-PSI-Extension-for-Project-Server-2010-Bug

Following the rest of the instructions in the examples was easy including the deployment instructions. However when I tested the web service I got this generic catch all error: ‘Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service’:

04-Creating-a-PSI-Extension-for-Project-Server-2010-Authentication-Error

After verifying that my development server had indeed Windows Authentication enabled

05-Creating-a-PSI-Extension-for-Project-Server-2010-Windows-Authentication

I then deployed the PSI extension in the Information Worker VHD provided by Microsoft to eliminate the possibility of having mis-configured my development machine, but there I got the same error condition.

After a few hours of research, I learned that while the deployment of Project Server was done using NTLM provider and the web.config was specified as NTLM in the SDK documentation.  I had to change the Providers configuration setting in the web server to include ‘Negotiate’.

06-Creating-a-PSI-Extension-for-Project-Server-2010-Negotiate

With the addition of this Provider setting, an iisreset and an IE clear cache I was able to access the PSI extensions without additional problems.

07-Creating-a-PSI-Extension-for-Project-Server-2010-Web-Service

For additional
SharePoint or Project Server
related articles please visit my website at:
www.gustavogarcia.net