2013-03-11 122 views
1

我发布在AdxStudio论坛上,并得到了完全零响应,所以我希望你们能帮助我调试这个。AdxStudio CrmEntityFormView吞咽Microsoft.Xrm.Sdk.SaveChangesException

我使用CrmEntityFormView创造CRM新的联系人,就像这样:

<adx:CrmDataSource ID="FormViewDataSource" runat="server" /> 
    <adx:CrmEntityFormView runat="server" ID="UserCreateForm" EntityName="contact" FormName="User Edit Form" DataSourceID="FormViewDataSource" 
     RecommendedFieldsRequired="true" ValidationGroup="NewUser" ValidationText="* This field is required" EnableValidationSummaryLinks="false" 
     OnItemInserting="UserCreateForm_ItemInserting" OnItemInserted="UserCreateForm_ItemInserted"> 
     <InsertItemTemplate></InsertItemTemplate> 
</adx:CrmEntityFormView> 

<asp:Button ID="SubmitButton" Text='Create User' CssClass="button" ValidationGroup="NewUser" runat="server" OnClick="SubmitButton_Click" /> 

我使用SubmitButton_Click处理程序在同一时间,像这样来处理表格上其他一些领域:

protected void SubmitButton_Click(object sender, EventArgs e) 
{ 
    if (!Page.IsValid) 
     { 
      return; 
     } 

    # Handle other form fields not on the FormView ... 
    UserCreateForm.InsertItem(); 
} 

当我提交一个有效的表单时,在我的数据库中没有任何反应。所以我调试的ItemInserted事件,把一个断点处理程序

protected void UserCreateForm_ItemInserted(object sender, CrmEntityFormViewInsertedEventArgs e) 
    { 
     Contact newUser = XrmContext.ContactSet.Where(c => c.ContactId == e.EntityId).FirstOrDefault(); 
    } 

原来的单行线,在这种情况下,e.Exception不为空,但是从标题SaveChangesException的实例,与消息“处理此请求时发生错误。”和e.ExceptionHandled == true,我想这就是为什么我从来没有看到任何东西。

此异常具有的InnerException的System.ServiceModel.FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>

与始终只包含FormView控件的第一个字段的值提交的消息的实例。我完全不知道为什么这不起作用,我不清楚如何进一步调试,并可以使用一些指针。

回答

1

System.ServiceModel.FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>吃掉堆栈跟踪。参考this blog作为实际记录堆栈跟踪的方法,以便能够找到发生错误的位置。