Thursday, January 26, 2012

SharePoint 2010 Central Administration shows HTTP 404 Error after Installation

Hello Folks,

I have built lot of SharePoint Farms in my project. But came across with a new issue in IIS after the installation of first Application Server hosting Central Administration. Installation went successful oh la la!!! but there are other worries waiting for me when I tried to access SharePoint 2010 Central Administration page.

Guess what, it displayed a very simple page with a "HTTP 404 Error". I started to wonder what screwed up in the installation which caused Central Admin site to break. I quickly verified my log files all seems to be fine and cool.

I turned to the basics of Web sites and IIS, leaving SharePoint concepts and shifted my attention to verify IIS settings. Again as expected IIS is the culprit and got to know something new this time called "HTTP Verbs".

HTTP Verbs are the one responsible to allow or deny HTTP requests for the Web Server via Request Filtering

I verified the HTTP Verbs in some of the other Farms and added the following HTTP Verbs to be processed in IIS-> Request Filtering settings in my server

GET
POST
HEAD
CONNECT
PUT
DELETE
TRACE
OPTIONS

Problem: SharePoint Central Admin Page diplays HTTP 404 Error after Installation

Cause: HTTP Verbs are not configured to allow in IIS

Resolution: Go to the server where SharePoint Central Admin is hosted, Start -> Run -> Type inetmgr -> Click OK -> Expand Server_Name -> Expand Sites -> Click Web Application -> Click Request Filtering under IIS on the Right -> Double click "Request Filtering" -> Click on HTTP Verbs->Click Allow from the top right corner and enter GET and click OK. Repeat the same steps to allow other verbs POST, HEAD, CONNECT, PUT, DELETE, TRACE, OPTIONS and Central Administration started to load properly

Note: If you require, future web applications not to face this issue, then the settings has to be applied to the IIS level as well. Following are the steps to apply the same

Go to the server where SharePoint Central Admin is hosted, Start -> Run -> Type inetmgr -> Click OK -> Click on Server_Name -> Click Request Filtering under IIS on the Right -> Double click "Request Filtering" -> Click on HTTP Verbs->Click Allow from the top right corner and enter GET and click OK. Repeat the same steps to allow other verbs POST, HEAD, CONNECT, PUT, DELETE, TRACE, OPTIONS

Hope this helps!!!

Happy bug fixing!!!

Wednesday, January 25, 2012

SharePoint 2010 - People Picker displays blank page

Hi,

Last week I came across an issue where SharePoint 2010 People Picker displayed a "Blank Page" instead of displaying the users. It was very strange as other SharePoint Pages were working fine. We have built lot of SharePoint 2010 farms before and never faced this issue, so that gave us a clue to rule out possible errors in SharePoint 2010. The other two bits which need to verify are windows firewall or IIS Settings.

Windows firewall - Should not be an issue as All pages in the server accessed via same port and other pages are working fine.

IIS Settings - hmm ya interesting to notice SQL Injection Settings applied on IIS Server. It was applied as part of Organization policy to block any SQL Query attacks to Databases via Query Strings. There was something bothering to proceed before confirming is SharePoint 2010 if fool proof enough to remove this settings. After googling around I found an article from MSDN which clarifies the same.

http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/6b48e7ac-a393-48b4-ba24-6e56cd8b7ebc/

Once we removed the SQL Injection Settings from IIS on all the Web Front Ends. People Picker started to return expected results

Problem: People Picker returns Blank Page

Cause: SQL Injection Settings applied on the IIS

Resolution: Go to all Web Servers, Start -> Run -> Type inetmgr -> Click OK -> Expand Server_Name -> Expand Sites -> Click Web Application -> Click Request Filtering under IIS on the Right -> Double click "Request Filtering" -> Click on Rules -> Click on Rules related to SQL Injection (name can be anything defined, most probably it will deny certain strings which has SQL Keywords in Query Strings) -> Either remove the rule completely or remove the denied strings within the rule Whichever is applicable. Repeat the steps for all the Web Front Ends, This will resolve the issue.

Note: If you require, future web applications not to face this issue then the settings has to be applied to the IIS level as well. Follow the following steps to apply the same

Go to all Web Servers, Start -> Run -> Type inetmgr -> Click OK -> Click on Server_Name -> Click Request Filtering under IIS on the Right -> Double click "Request Filtering" -> Click on Rules -> Click on Rules related to SQL Injection (name can be anything defined, most probably it will deny certain strings which has SQL Keywords in Query Strings) -> Either remove the rule completely or remove the denied strings within the rule Whichever is applicable. Repeat the steps for all the Web Front Ends, This will make sure all future web applications will not face this issue.

Other Issues related:
The same issue is applicable while accessing "View All Site Collections Page" in SharePoint 2010 Central Administration Screen. SharePoint Central Admin ->
Application Management-> View All Site Collections.

Precuation:
The fix is for SharePoint 2010 Out of the box pages which are confirmed from MSDN that there are no vulnerable SQL Injection attacks by the Product. However for custom solutions or custom pages deployed in SharePoint 2010, it is responsiblity of the Deployment team to review this settings for custom code and approve it to be deployed.

Hope this helps!!!

Happy bug fixing!!!