Creating a PSI Extension for Project Server 2010

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


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.


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.  


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’:


After verifying that my development server had indeed Windows Authentication enabled


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’.


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.


For additional
SharePoint or Project Server
related articles please visit my website at: