Notes on the history of SharePoint

November 12th, 2008 by radi a.

Rai Umair showed me today this diagram from Joining Dots – a nice layout plotting the history of SharePoint. It shows the path that the different Microsoft products took and eventually how the features ended up in SharePoint – all the way back from Site Search Commerce Edition (before Tahoe). This Joining Dots blog article describes the evolution in detail.

Pretty cool, thought I might keep this for reference.

Code Snippet: How to get a list's complete/full URL

October 29th, 2008 by radi a.

        public static string BuildListURL(SPList list)
        {
                return list.ParentWeb.Url + "/" + list.RootFolder.Url;
        }

SharePoint Content Deployment error: (null) "Long Running Operation Status/Item" not found.

October 20th, 2008 by radi a.

I've been banging my head against the wall on some content deployment errors. I found nothing on the net on the following one… It appeared in the content deployment job history:

 (null) "Long Running Operation Status/Item" not found.

I resolved it by deleting and recreating the content deployment path.

Decoding ASP.NET ViewState

October 20th, 2008 by radi a.

 I've heard from a few people that you can't really see what is in your ViewState. That is not really true, you can decode the base64 hashcode that gets included in the <input type="hidden" name="__VIEWSTATE"> HTML tag.

You can find a few tools around that will help you do that by doing a simple Google search: http://www.google.com.au/search?source=ig&hl=en&q=viewstate+decode

 I had a play with ViewState Decoder 2.2 by Pluralsite.

ViewState Decoder 2.2 

Cool stuff.

CRM v4 workflows never continue when all "wait" conditions have been met

October 13th, 2008 by radi a.

I was looking into a CRM workflow issue where the workflow doesn't proceed at a "wait until task" step. When the dependent task status has changed to "complete" the workflow should continue, but instead it just hangs.

I did a few tests and managed to reproduce the problem by completing the task as soon as possible after it is created by workflow. Delaying the approval doesn't cause any problems. I managed to locate a hotfix from Microsoft: http://support.microsoft.com/kb/951919

Installing it resolved the issue.

Debugging Project Server 2007 event handlers

September 26th, 2008 by radi a.

Having spent some time developing Project Server 2007 event handlers, I thought I might share some things I do when I build and debug these nasty creatures. PS event handlers are sometimes trickier to debug.

I set up my Visual Studio post-build events to uninstall the current DLL's, stop the Project Server event service, install the new DLL's then start the Event service. I sometimes do an iisreset if I must:

iisreset

gacutil /u DOD.Common

net stop "ProjectEventService"

gacutil /i .indebugProject.dll

net start "ProjectEventService"

 For attaching and detaching event handlers I use the Project Server 2007 Event Handler Admin Tool. This saves a great amount of time.

I then attach my Visual Studio debugger to the Microsoft.Office.Project.Server.Eventing.exe process. If the build was a Debug build with symbols, everything should be fine and the breakpoints will hit.

Here are two great resources on debugging PS event handlers:

http://msdn.microsoft.com/en-us/library/bb802729.aspx

http://msdn.microsoft.com/en-us/library/ms469450.aspx

 

Passed all SharePoint MCTS Exams!

September 10th, 2008 by radi a.

I have been working hard this year to fit in the SharePoint MCTS exams that I haven't passed previously. This month I completed my last one and I now have all four under my belt:

MCTS Configuration SharePoint

MCTS Application Development SharePoint

Woohoo!

"File Not Found" when browsing a SharePoint page

August 7th, 2008 by radi a.

An (old) colleague of mine brought this up with me so I thought I might write a post about it.

When trying to open login.aspx on a Forms Authentication site another error with no HTML error code appeared: "File Not Found" was the only message in the browser.

I found the solution on this blog post. The ASP.NET configuration tool within IIS Manager was adding xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" in the <configuration> section of the web.config file. This was causing the "File Not Found" error and removing the xmlns property fixes it.

Hope this helps someone.

SharePoint – 401 Unauthorized, Search and Forms Authentication

August 6th, 2008 by radi a.

We ran into this nasty problem at work. Opening results.aspx in a Search Center site returned a "401 Unauthorized" error. It only happened in IE6 and just the first time you open the page after an IIS reset, app pool recycle or master page edit. Refreshing straight after the error opened the results.aspx page successfully. It felt very odd and it was resonably difficult to find a fix. The site collection was configured for anonymous access and it happened with any master page including default.master.

A relevant entry could also be seen in the Event Viewer:

Exception type: HttpException
Exception message: Cannot redirect after HTTP headers have been sent.

After a bit of searching on the net the only solution was setting the batch attribute of the compilation element to false in the forms authentication web application's web.config.

<compilation batch="false" debug="false" />

The following Microsoft KB article describes that batch set to true is not supported for Microsoft Office SharePoint Server 2007 nor Microsoft Windows SharePoint Services 3.0: http://support.microsoft.com/kb/953459

This fixed our issue. Hope this helps someone.

IE Browser Homepage overwritten by Group Policy – A VBScript to add additional homepage tabs

April 17th, 2008 by radi a.

My company has an AD Group Policy that overwrites my browser's home page with the company's intranet landing page. On top of that any additional home page tabs I configure are removed.

I have always been a big fan of scripts, shortcuts and quick ways to do things (hence my dev tools post). I'm also a big fan of IE homepage tabs, and I want my tabs back!

While I respect the Group Policy and the requirement for staff to see the intranet home page, I still feel the urge to have control over my homepage tabs, so here's a quick script that I wrote.

This VBscript will set the “Secondary Start Pages” key in the registry. It will keep the “Start Page” key that the AD Group Policy configures, so your company intranet page will still load.

Here's the code:

'Written by Radi A. @ UW

'Use at your own risk and I take no blame if you get fired because of this… (:

Option Explicit

 

Dim arrValues

 

'Set your homepages here in the following array.

arrValues = Array("http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1203&SiteID=1", _

"http://www.google.com.au/ig?hl=en", _

"/radi")

 

'declarations

Const HKEY_CURRENT_USER = &H80000001

Dim objRegistry

Dim strComputer, strKeyPath, strValueName

strComputer = "."

 

'get key object

Set objRegistry=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "
ootdefault:StdRegProv"
)

'assign variables

strKeyPath = "SoftwareMicrosoftInternet ExplorerMain"

strValueName = "Secondary Start Pages" 'change this property only to keep Click as a home page

'set the property

objRegistry.SetMultiStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,arrValues

 

Just modify the lines with your homepages, save it as .vbs and place it in your “Startup” folder.

I have also packed it in a ZIP for convenience. Download Browser_Secondary_Homepage_Overwrite_Script.Zip