“Access Denied” when Editing Task in a Workflow

This one was *really* weird stuff.

– There is a SPD-created workflow that creates successive approval tasks, using Collect Data From a User action
– This workflow is hosted on a subsite that has unique security
– After the workflow is created, I add a new user with Full Control permissions over the site, let’s call him johndoe
– Johndoe initiates a workflow, as he wants to try the workflow
– The workflow creates a task for another user, as expected
Johndoe clicks the task in the task list, it shows the task data, as expected (johndoe has Full Control over the site, right?)
Johndoe clicks the “Edit Item” to impersonate the user
“Access denied” message appears!

I wandered why a user who has Full Control rights over the site cannot edit a task. The task itself had inherited permissions from the host site, giving johndoe Full Control over itself. Extensive Googling took me to this MSDN Forum post.

I tried the suggested solution of publishing the site to a local disk. After this, johndoe can edit the task. It smells like a bug inside SharePoint workflow infrastructure.

Vaio, Sigmatel sound card and Vista

As I recently reinstalled Vista (as I explained in my previous post), all the drivers for my Vaio laptop had to be reinstalled too. It all went well, except for the sound card. It’s a Sigmatel card (High Definition Audio Device).

The problem was that the sound output was OK, except when the headphones were plugged in. In that case no sound was heard, neither from the speakers nor from the headphones.

The solution was not so easy to find, but it’s simple enough:

  • Plug the headphones in
  • Right-click the speaker icon in the system tray and choose “Playback Devices”
  • Select the headphones and click “Set Default” button

Vista Enterprise Volume Activation Error 0x8007232B

I’ve been trying to activate my corporate Vista Enterprise license, as I reinstalled Vista in 64 bits mode. I tried to activate online and I met this error message from Windows Activation utility:


Code:
0x8007232B

Description:
DNS name does not exist.

First I thought that my proxy or firewall settings were wrong. However, the reason for this error is that Vista volume license images ship with a generic Product Key. You have to change this product key to match your company’s MAK (Multiple Activation Key).

I changed it and Vista activation was a breeze. If only Microsoft would change the nondescript error message with something like “Your Product Key has not been set. Please enter your Volume MAK key“. Maybe in SP1?

An unknown error has ocurred – One solution

Today I was setting up a fresh virtual machine with MOSS 2007 and I met the dreaded “An unknown error has ocurred” message after the SharePoint Configuration Wizard finished.

I traced it in the Event Viewer and it was a repetitive error such as this one:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{61738644-F196-11D0-9953-00C04FD919C1}
to the user NT AUTHORITYNETWORK SERVICE SID (S-1-5-20). This security permission can be modified using the Component Services administrative tool.

I looked up in the Registry and found out that the CLSID in the message identified one “IIS WAMREG admin service”. Then, I opened the Component Services, DCOM Config and under the properties of WAMREG service component I allowed NETWORK SERVICE account local launch and local activation permissions (on the Security tab).

The MOSS 2007 fresh welcome was just one IISRESET away!

Common Pitfalls in SharePoint Designer Custom Actions

I crafted a handful of custom workflow actions for SharePoint Designer recently and I noticed several recurrent errors:

  • When you select a custom activity from the Actions drop-down, nothing happens
    • Usual suspect: the class name and assembly reference do not match in ACTIONS file and DLL. Please check that your class reference in the Action tag in the ACTIONS file exactly matches your DLL full name.
    • Not so usual suspect: SPD has a cached reference of your old DLL. Exit SPD, delete ApplicationDataMicrosoftWebSite Cache folder and restart SPD.
    • Even less usual suspect: You’ve correctly placed the ACTIONS file and the activity DLL, but you haven’t added an authorizedType element into your web application web.config file. Add the correct entry (you can check the whole process here) and try again.
  • When you bind a property to a value, it doesn’t get set
    • Usual suspect: the demoted property name in your DLL and in ACTIONS file do not match. Please check that all your properties in the code exactly match the Parameters section elements in your ACTIONS file.

I hope that these simple advices save you valuable time. Happy programming in the WF world!