Archive

You are currently browsing the archives for the SharePoint Server 2007 category.

Feb

27

SharePoint’s Memory Leak

By Cory

Todd Carter over at todd-carter.com has posted his very in-depth findings regarding a pretty significant memory leak in SharePoint 2007. The problem lies around the HttpApplication object and ultimately around the SPHttpApplication object.

For each HttpApplication which is leaked a potential huge number of child references are too rooted and therefore leaked.

The memory leak has proven to be pretty significant for certain clients as you can see below…

After having the customer install the fix I have described here the process which would normally grow to 10 GB an hour and recycle never went above 2.5 GB! And even after taking all servers out of the load balancer and running the entire farm off one WFE the memory never went above 3.3 GB!!

To learn more read the whole post at Todd’s blog.

Feb

2

Setting up Anonymous Access

By Cory

I always seem to leave out a step when configuring anonymous access for a SharePoint site so I’ve finally put together a full guide so I don’t leave out any steps in the future.

Deactivate Hidden Features

If you are getting “Access Denied” for lists and libraries then you probably for got this step. There is a hidden feature that secures the lists and libraries by default for all sites that have anonymous access enabled. If you have already enabled anonymous access prior to deactivating this feature then you will need to turn all anonymous access off and back on to refresh this functionality.

  1. For each site collection that requires anonymous access execute the following stsadm command.
    stsadm -o deactivatefeature -url http://sitecollection -name ViewFormPagesLockDown

Read more »

Jan

11

Presenting at the Triad SharePoint User Group Meeting

By Cory

I’ll be presenting at the Triad SharePoint User Group Meeting on January 12th 2010 in Winston-Salem, NC. If you’re in the area and interested in attending please check out the Triad SharePoint User Group site and feel free to stop by. The name of my presentation is Branding SharePoint Search Results. I’m going to be talking about the following topics:

  • How search has evolved
  • Making search results more visual
  • How to use ContentClass and Managed Properties
  • Customizing the Search Core Results Web Part
  • Best practices

I’ll post the slides here after the meeting but they will also be available on the TSUG site.

Edit: Slides can be downloaded here: Search Results Branding.pptx

Dec

11

SharePoint Search Crawled Properties Variant Types

By Cory

If you ever need to create SharePoint managed properties through code then you’re going to be asked for a Variant Type. Since I couldn’t find an enum in the code or any documentation to identify them I started digging through the SharePoint UI and was able to hunt down the following. Hopefully it will save the next person some time.

Read more about programmatically creating managed properties via MSDN.

Variant Type Data Type
31 Text
20 Integer
11 Yes/No
12 Binary Data
64 Date/Time

Sep

29

Undocumented List Definition Properties

By Cory

While the MSDN article gives most of the properties that you can use when configuring your list definition it does miss a few. I’ve documented the missing properties that I’ve found below:

Attribute

Description

ForceCheckout Optional Boolean. TRUE to require documents to be checked out before they can be edited.
EmailAssignTo Optional Boolean. TRUE to automatically send emails to the user when an item is assigned to them.
MajorVersionLimit Optional Integer. Specifies the number of major versions to retain when versioning is enabled.
MajorWithMinorVersionLimit Optional Integer. Specifies the number of draft versions to retain for each major version when versioning is enabled.

Sep

24

Querying a SharePoint List with LINQ

By Cory

I am continuously seeing the value in LINQ and I think with the upcoming changes in SharePoint 2010 I plan on making LINQ an even bigger part of my normal development practice.

First establish an SPList object of the list you would like to query data from.

SPList list = web.GetList("/Lists/ListUrl");

Next query the list; taking advantage of the filtering and sorting capabilities built into LINQ

var listItems = from SPListItem item in list.Items
                            orderby item.Title
                            ascending
                            select item;

And with a where query utilizing a custom field!

var listItems = from SPListItem item in list.Items
                            orderby item.Title
                            ascending
                            where ((DateTime)item["CustomExpirationField"]).DayOfYear >= DateTime.Now.DayOfYear
                            select item;

Now feel free to loop through your data and take care of business!

foreach (SPListItem item in listItems)
{
     // item.Title
     //etc
}