Where have my Create options gone?

August 11, 2010

When trying to add a list or a library to a SharePoint 2007 site my only options on the Create page are to create Web Pages.

I needed to turn on the Team Collaboration Lists feature first for the site and my Create options expand to include Libraries, custom lists etc.


Telerik RadGrid not using AJAX in SharePoint Application Page

October 15, 2009

I have a SharePoint application page (A page that resides in _layouts and inherits from Microsoft.SharePoint.WebControls.LayoutsPageBase) Where I have a Telerik RadGrid. I have Ajaxified the grid by using a Telerik RadAjaxManager however whenever I filter or page the grid it performs a full page postback rather than an ajax callback. 

I managed to get this working by following the instructions here:
http://www.telerik.com/community/forums/aspnet/ajax/radajaxmanager-sharepoint-2007-bug.aspx#605189

It appears it is the UpdatePanel functionality of AJAX that doesn’t play out of the box with WSS:

Windows SharePoint Services JavaScript has a “form onSubmit wrapper” which is used to override the default form action. This work is put in place to ensure that certain types of URLs, which may contain double byte characters, will fully work across most postback and asynchronous callback scenarios. However, if your scenarios do not involve double byte character URLs, you may successful disable this workaround and gain the ability to use ASP.NET AJAX UpdatePanels.

 taken from http://blogs.msdn.com/sharepoint/archive/2007/03/02/integrating-asp-net-ajax-with-sharepoint.aspx

So the code I have added to my SharePoint Application Page is:

protected override void CreateChildControls()
{
      base.CreateChildControls();
      this.EnsureUpdatePanelFixups();
}

private void EnsureUpdatePanelFixups()
{
     ScriptManager.RegisterStartupScript(this, typeof(XXXXYourApplicationPageClassXXXXX), “UpdatePanelFixup”, “_spOriginalFormAction = document.forms[0].action; _spSuppressFormOnSubmitWrapper=true;”, true);
}

Note: This works for Application Pages only. If you are building a WebPart and having the same issue then the fix for this is mentioned in the links below.

Other useful resources:
http://www.telerik.com/community/forums/aspnet-ajax/ajax/ajax-controls-in-sharepoint-application-page-causing-postbacks.aspx
http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3
http://www.marten-online.com/sharepoint/ajax-second-postback-not-working-in-sharepoint-in-updatepanel.html


Cannot find Error Pages in IIS 7.0 Manager

September 8, 2009

The Error Pages icon was missing from Internet Information Services Manager on my Vista machine.

This feature will need to be turned on in Windows Features:
Control Panel > Programs and Features > Turn Windows features on or off

Check the box next to:
Internet Information Services > World Wide Web Service > Common Http Features > HTTP Errors.


Unable to start debugging on the web server

September 8, 2009

Unable to start debugging on the web server.

Server side-error occurred on sending debug HTTP request. Make sure the server is operating correctly. Verify there is no syntax errors in the web.config by doing a Debug.Start without Debugging. You also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.

Microsoft Vista Business, IIS 7.0, Visual Studio 2005

I was getting this error whilst trying to debug a Visual Studio 2005 .NET v2.0 project which uses the local IIS rather than the built in Visual Studio Development Server.

I tried many things to fix this error, permissions, updates, reg_iis, etc. However what worked for me was by changing the Application Pool for my application from DefaultAppPool to Classic .NET AppPool.

Why does this work? By default the DefaultAppPool runs in Integrated Managed Pipeline Mode and the Classic .NET AppPool runs in Classic Managed Pipeline Mode.

Integrated Managed Pipeline Mode
This is new in IIS 7.0 and essentially wraps IIS and ASP.NET into one process model.

Classic Managed Pipeline Mode
This is backwards compatibility mode for IIS 7.0 and handles requests in an IIS 6.0 worker process. IIS and ASP.NET are separated.

So why did this break my app?
My app was originally upgraded from an earlier version of .NET to .NET 2.0 and so is not IIS 7.0 compliant. I will need to migrate it so it can utilise the new integrated mode in IIS 7.0. This migration process is documented here.
http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

Update
The HTTP Error I was receiving was 500.24. By following the article above all I needed to do to add the below to the web.config and now my app runs correctly in Integrated Managed Pipeline Mode.

<system.webServer>
<validation validateIntegratedModeConfiguration=”false” />
</system.webServer>


Add a New Security Role (Permission Level) in SharePoint 2007

May 26, 2009

1) From the Site Collection go into ‘Site Settings’.
2) Under ‘Users and Permissions’ go into ‘People and Groups’
3) On the side menu go into ‘Site Permissions’
4) From the Toolbar click ‘Settings’ > ‘Permissions Levels’

From here you can create and edit your ‘Permission Levels’ aka ‘Roles’.

Took me a while to find this. Hidden in the depths of one of SharePoint’s sub-sub-sub menus. The API uses the term ‘Role’ however elsewhere this is known as ‘Permission Level’.


Visual Studio 2005 asp.net debugging error

March 19, 2009

I received the below error whilst trying to debug an ASP.NET app using Visual Studio 2005 on Windows Vista using IIS 7.0

The web server is not configured correctly. See help for common configuration errors. Running the web page outside of the debugger may provide further information.

Turns out that compilation debug = true needs to be specified in the web.config

<compilation debug=”true”>


Error opening master page in SharePoint Designer

February 26, 2009

I had recently updated a custom Master Page. When trying to open this Master Page in SharePoint Designer I received this error.

soap:ServerServer was unable to process request. —> The file http://server/sites/site/_catalogs/masterpage/xxxxx.master does not exist.

I could see the page in the list however I couldn’t open it. All other files appeared do be fine and would open normally.

Back in a web browser I tried manually checking out the Master Page from the Master Page Gallery, which worked fine. However when I tried to check the file back in again it errored.

There is no file with URL ‘_catalogs/masterpage/xxxxx.master’ in this Web. at Microsoft.SharePoint.Library.SPRequestInternalClass.CheckInFile(String bstrUrl, String bstrWebRelativeUrl, Int32 iCheckinType, String bstrCheckinComment, Boolean bIsMigrate, Int32 iEditorId)
at Microsoft.SharePoint.Library.SPRequest.CheckInFile(String bstrUrl, String bstrWebRelativeUrl, Int32 iCheckinType, String bstrCheckinComment, Boolean bIsMigrate, Int32 iEditorId)

In the end I had to manually re-upload my custom Master Page into the Master Page Gallery.

This has fixed the issue however I am still unclear as to why it failed in the first place.