SharePoint is a fairly complex product that is in a state of constant maturation. With so much customization available to users and developers, it can be hard to stay on top of best practices - especially when those best practices may not be documented in easy-to-find places. To help other users and developers, I have compiled this list of SharePoint "gotchas" and their remedies.
I cannot find a column in a list or list item!
Make sure you are using the appropriate name - external or internal. Internal column names are invariant once a column has been created, and these must be used when indexing a column collection in either a list or a list item. Also, keep in mind that SharePoint has its own way of encoding special characters in column names. It may be useful to identify the internal column names for a list using Powershell.
My list template included a lookup column that is broken when I create a new list from it!
Lookup columns reference lists in the same site collection as the list containing the lookup column. If you create a child from a template in a different site collection, the referenced list will no longer exist. To recreate the link, you must recreate the referenced list in the other site collection, delete the lookup column, and re-add the lookup column pointing to the copy of the list reference.
My debugger cannot find the symbols for the custom workflow activity I am debugging!
When debugging a custom workflow activity through Visual Studio, I have found that the symbols are only detected when the deployed workflow action was compiled in Debug mode. Are you trying to debug Release code?
My workflow was not triggered when a list item was created or edited!
SharePoint will not trigger workflows if the triggering action was performed by the System Account. Critically the SharePoint timer service may run under the System Account, so attempting to trigger workflows by creating and editing list items from a timer job will require impersonation if this is the case.
My client application using the server object model reports permissions issues when trying to connect to my SharePoint site!
The account under which the client application runs must have appropriate permissions on both the configuration databases in your farm as well as the content databases used by the application. These permissions can be added in SQL Server Management Studio.
When I add a custom workflow activity to my workflow nothing happens!
Is your workflow assembly an authorized type in the appropriate web config?
My web part crashed my page and now I cannot remove it!
Append the query string parameter "contents=1" to the end of the page's URL in your web browser. (Remember to add a question mark after the URL and before the query string if there are no other parameters already.) This will bring you to a page where you can close or delete the offending web part from your page.
I'm using a people picker control on a page and it sometimes throws exceptions on postbacks!
Override the OnLoad method for your page and call Validate() on each picker control before the page is loaded.
I occasionally get weird Linq permission errors when consuming another assembly from a web part!
Is the server assembly deployed to the same location as the web part? I have seen strange Linq errors when a web part assembly is deployed to the GAC and another assembly is deployed to the bin folder of the web application.
My document library folder contains documents but my code cannot see them!
Are you getting the SPFolder object using SPWeb.GetFolder? This method can fail silently so that an invalid SPFolder object is returned that has some properties assigned but points to nothing. Be sure to call SPFolder.Exists on any folder returned by SPWeb.GetFolder.
I cannot navigate to my SharePoint site from the application server using an external URL!
This is a security feature. Workarounds can be found here.
Office documents are not appearing in the search results under their actual filename!
This is a feature - or not - called Optimistic Title. See this blog for instructions on disabling this feature.
Stay tuned for more tips and tricks in the future!
Learn more about DMC's SharePoint consulting services.