我可以在实体网格中看到一条记录,但是当我单击该记录打开它的表单时,我得到一个错误消息:“该记录不可用。未找到请求的记录,或者您的显示权限不足。”(因为我的系统是希伯来语-我希望我的翻译是准确的)我是系统管理员(根据CRM特权)。
在检查服务器后,我在事件查看器中发现了一条SQL错误警告:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="ASP.NET 4.0.30319.0" />
<EventID Qualifiers="32768">1309</EventID>
<Level>3</Level>
<Task>3</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-05-25T18:00:30.000000000Z" />
<EventRecordID>5574520</EventRecordID>
<Channel>Application</Channel>
<Computer>ServerName</Computer>
<Security />
</System>
- <EventData>
<Data>3005</Data>
<Data>An unhandled exception has occurred.</Data>
<Data>25/05/2015 21:00:30</Data>
<Data>25/05/2015 18:00:30</Data>
<Data>cb25f0437bee49deaf1ed75e627b9dda</Data>
<Data>30028</Data>
<Data>6</Data>
<Data>0</Data>
<Data>/LM/W3SVC/1/ROOT-4-130770366125068492</Data>
<Data>Full</Data>
<Data>/</Data>
<Data>C:\Program Files\Microsoft Dynamics CRM\CRMWeb\</Data>
<Data>ServerName</Data>
<Data />
<Data>1428</Data>
<Data>w3wp.exe</Data>
<Data>NT AUTHORITY\NETWORK SERVICE</Data>
<Data>CrmException</Data>
<Data>contact With Id = 69fa903e-f865-df11-b4ad-001ec9e8be31 Does Not Exist at Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal() at Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveCommand.Execute() at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String[] columns, Guid auditingTransactionId, Boolean addRequiredColumns) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String[] columns, Guid auditingTransactionId) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String columnSet, Guid auditingTransactionId) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String columnSet) at Microsoft.Crm.Application.Forms.AppForm.FormLoadEvent() at Microsoft.Crm.Application.Forms.AppForm.RaiseDataEvent(FormEventId eventId) at Microsoft.Crm.Application.Forms.EndUserForm.Initialize(Entity entity) at Microsoft.Crm.Application.Forms.CustomizableForm.Execute(Entity entity, FormDescriptor fd) at Microsoft.Crm.Application.Components.PageHandlers.ContactRecordPageHandler.ConfigureFormHandler() at Microsoft.Crm.Application.Components.PageHandlers.RecordPageHandler.ConfigureFormWrapper() at Microsoft.Crm.Application.Components.Utility.GenericEventProcessor.RaiseEvent(String eventName) at Microsoft.Crm.Application.Controls.PageManager.OnPreRender(EventArgs e) at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</Data>
<Data>http://ServerName/OrgName/userdefined/edit.aspx?_gridType=2&etc=2&id={69FA903E-F865-DF11-B4AD-001EC9E8BE31}&pagemode=iframe&preloadcache=1432576830146&rskey=882919810</Data>
<Data>/OrgName/userdefined/edit.aspx</Data>
<Data>192.168.30.4</Data>
<Data>Domain User</Data>
<Data>True</Data>
<Data>NTLM</Data>
<Data>NT AUTHORITY\NETWORK SERVICE</Data>
<Data>116</Data>
<Data>NT AUTHORITY\NETWORK SERVICE</Data>
<Data>False</Data>
<Data>at Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal() at Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveCommand.Execute() at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String[] columns, Guid auditingTransactionId, Boolean addRequiredColumns) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String[] columns, Guid auditingTransactionId) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String columnSet, Guid auditingTransactionId) at Microsoft.Crm.Application.Platform.EntityProxy.Retrieve(String columnSet) at Microsoft.Crm.Application.Forms.AppForm.FormLoadEvent() at Microsoft.Crm.Application.Forms.AppForm.RaiseDataEvent(FormEventId eventId) at Microsoft.Crm.Application.Forms.EndUserForm.Initialize(Entity entity) at Microsoft.Crm.Application.Forms.CustomizableForm.Execute(Entity entity, FormDescriptor fd) at Microsoft.Crm.Application.Components.PageHandlers.ContactRecordPageHandler.ConfigureFormHandler() at Microsoft.Crm.Application.Components.PageHandlers.RecordPageHandler.ConfigureFormWrapper() at Microsoft.Crm.Application.Components.Utility.GenericEventProcessor.RaiseEvent(String eventName) at Microsoft.Crm.Application.Controls.PageManager.OnPreRender(EventArgs e) at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</Data>
</EventData>
</Event>
我不能删除记录,也不能停用它!现在我意识到我还有更多这样的记录,我想要的就是把它们过滤掉,永远摆脱它们!!请帮帮忙:(
谢谢。
发布于 2015-07-03 06:48:15
我建议检查数据库,看看记录是否实际不存在。
例如,在contact表上搜索contactid = '69fa903e-f865-df11-b4ad-001ec9e8be31‘。
如果它返回一个结果,则该记录肯定存在。如果不是,那么它就不会。无论哪种方式,都有一些奇怪的事情正在发生。如果你能证明其中任何一个,我会向微软提出申请。
同样值得考虑的是,如果您有任何自定义,这可能会干扰CRM的正常行为。
发布于 2015-07-07 01:59:26
谢谢James :)
你实际上给了我一个很好的提示。
在观察数据库之后,我意识到这些特定的记录存在于ContactsBase表中,但是由于某种原因(无法确定为什么),这些相同的记录ID在ContactsExtended中缺失。
这就是为什么在主视图上我能够看到这些记录(视图只包含来自ContactsBase的字段),但在实际打开表单时却失败了!
因此,使用EXCEPT语句(参见http://www.sqlusa.com/bestpractices2008/compare-tables/)在ContactsExtended表中使用缺少的did创建这些记录完成了以下工作:)
https://stackoverflow.com/questions/30444307
复制相似问题