Editing an attribute binding to be required blows up FIM
This seems like a bug to me...
After editing an existing attribute binding called Display Name and making it a required field, I restarted FIM (not straight away, so didn't see this problem straight away) and then went to the page for this entity in Portal, and was presented with a very
unhelpful "Unable to process your request" error message. After doing some research and enabling the Yellow Screen of Death, I got this out of it...
I tried restarting FIM and doing an IISreset, but it does appear to be a sql data issue.
After making it as not required again, the Portal worked. Weird! What should I do from here, how do I report this as a bug?
We're using RTM only.
A column named 'Display Name' already belongs to this DataTable. body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top:
-5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Lucida Console";font-size: .9em} .marker {font-weight:
bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
Server Error in '/' Application.
A column named 'Display Name' already belongs to this DataTable.
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.DuplicateNameException: A column named 'Display Name' already belongs to this DataTable.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[DuplicateNameException: A column named 'Display Name' already belongs to this DataTable.]
System.Data.DataColumnCollection.RegisterColumnName(String name, DataColumn column, DataTable table) +3275760
System.Data.DataColumnCollection.BaseAdd(DataColumn column) +144
System.Data.DataColumnCollection.AddAt(Int32 index, DataColumn column) +268
System.Data.DataColumnCollection.AddRange(DataColumn[] columns) +95
Microsoft.IdentityManagement.WebUI.Controls.DataSourceProxy.GetPageRecords(String sortBy, Int32 startRowIndex, Int32 maximumRows) +179
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +1255
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +38
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +897
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1848
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +27
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +261
Microsoft.IdentityManagement.WebUI.Controls.InternalListView.Rebind() +51
System.Web.UI.Control.LoadRecursive() +66
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.LoadRecursive() +191
System.Web.UI.Control.AddedControl(Control control, Int32 index) +350
Microsoft.IdentityManagement.WebUI.Controls.NewListViewHostCtrl.CreateChildControls() +1011
Microsoft.IdentityManagement.WebUI.Controls.CustomizedObjectList.CreateChildControls() +21
System.Web.UI.Control.EnsureChildControls() +146
System.Web.UI.Control.PreRenderRecursiveInternal() +61
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394
Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4205
September 23rd, 2010 12:19pm
I had the same problem, it seems like a bug. I used my own work-a-round. I edited the RCDC of the object and set Required to true in the RCDC. It's not a nice solution but it is working.
Free Windows Admin Tool Kit Click here and download it now
September 23rd, 2010 2:32pm
Yeah, I've toyed with that, but came to the conclusion it's too nasty as it means the schema is not being properly validated. For instance, we are inserting test-data via web-services, and even migration data at deployment time. Without the required attribute
in the schema things could get very badly broken downstream from FIM.
September 23rd, 2010 4:49pm
would you please contact PSS and have the issue logged?
btw, is there anyway to recovery from it? if not, it's a pretty bad bug to me
Free Windows Admin Tool Kit Click here and download it now
September 23rd, 2010 5:06pm
just hit the same bug
latest build, changed validation filter on attribute binding for DisplayName on custom object.
was able to rollback by clearing the filter _AND_ 'required' checkbox.
now, if 'required' will be enabled on attribute binding I see
A column named 'Display Name' already belongs to this DataTable
disabling it solves the problem.
The weird thing is that I just added a validation filter and didn't touch anything else.
April 4th, 2011 7:27am