Business Connectivity Services (BCS) problem with AuthenticationMode and RevertToSelf
I bumped into an issue the other week where I was creating a new BCS External Content Type and was hoping to hook up some new connections on a couple of demo farms I’ve created.
While most of these things were working like a charm, I bumped into an odd error message that basically told me that the elevation of privileges isn’t enabled on my BCS Service Application.
Problem, a short story told even shorter
You might receive an error message like this when trying to hook up a new External Data Source depending on your configuration:
The metadata object that has Name ‘yourName‘ has a Property with name ‘AuthenticationMode‘ and value ‘RevertToSelf‘. This value indicates that the runtime should revert to the identity of the application pool, but reverting to the application pool must be explicitly enabled for the service application by a farm administrator.
Solution
While digging around for a couple of minutes I couldn’t really find a suitable UI option for changing this behavior, so I dug into the power of PowerShell instead – which probably saved me quite some troubleshooting.
First you need to check the name of your Business Data Connectivity Service Application – a quick way is to check the UI, or you could use a PowerShell Cmdlet or use the API. I’m just using the UI for easy access:
Next, launch a new SharePoint 2010 Management Shell console and type in the following lines of code. Note that the name of the Service App below, is a copy of the name you took above:
$bcsServiceApp = Get-SPServiceApplication | where {$_ -match "Business Data Connectivity Service"}
$bcsServiceApp.RevertToSelfAllowed = $true;
$bcsServiceApp.Update();
This should now execute nicely (if you’ve got the appropriate permissions) and you should be able to see the RevertToSelfAllowed property be changed to true:
If you now would try to hook up your connections again, you should hopefully not see this message again.
Quick fix, done. Enjoy.