Не удается добавить связанные объекты в CRM 3.0
История до сих пор:
Пару недель назад поле полностью исчезло из таблицы AccountExtensionBase, но осталось в представлениях Account и FilteredAccount. Это привело к тому, что форма "Основная информация" в самой CRM (которая взята из этой таблицы) перестала работать полностью.
Чтобы исправить вышесказанное, я вручную удалил указанное поле из определений указанных представлений и отредактировал форму "Основная информация", чтобы больше не ссылаться на отсутствующее поле.
Что осталось в более-менее рабочем состоянии. Единственное, что по-прежнему не работает - это добавление связанных сущностей из уже открытой формы Main Info. При попытке выдает исключение 0x80044150. Узнав об этом, я вручную удалил поле из базы данных METABASE и вручную удалил все ссылки на него в таблице OrganizationUIBase. Ничего такого. CRM не позволит мне просто воссоздать поле, и я также не могу убедить его в том, что он действительно записывает в журнал трассировки, чтобы я мог получить больше информации о том, что происходит. Я знаю, что иногда это происходит, когда вы превышаете предел опций 2155 для полей списка выбора внутри сущности, но я не думаю, что это так, потому что первое, что я попробовал, когда проявилась первоначальная проблема, было удалить два полных поля списка выбора, которые были больше не нужно, и это явно не помогло.
Таким образом, есть какие-либо идеи о том, что может быть причиной этого, или что я могу сделать, чтобы это исправить, или даже каков возможный следующий шаг? Я тут немного озадачен.
Редактировать: получил запись трассировки на работу...
в ErrorInformation.LogError() в ErrorInformation..ctor(Исключение исключения, Uri requestUrl) в MainApplication.Application_Error(Отправитель объекта, EventArgs e) в EventHandler.Invoke(Отправитель объекта, EventArgs e) в HttpApplication.RaiseOnError() в HttpAppror.) (Исключительная ошибка) в HttpApplication.ResumeSteps (Исключительная ошибка) в HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) в HttpRuntime.ProcessRequerWun-TimeReaderSecurityReader.Reader.Ru.ProcessRequest (IntPtr ecb, Int32 iWRType)
> Отчет об ошибке платформы MSCRM:
Ошибка: Возникло исключение типа System.Web.HttpUnhandledException. Номер ошибки: 0x80044150 Сообщение об ошибке: исключение из HRESULT: 0x80044150. Сведения об ошибке: исключение из HRESULT: 0x80044150. Исходный файл: не доступно Номер строки: не доступно URL запроса: http://crmserv/userdefined/edit.aspx?_CreateFromType=1&_CreateFromId={94892C13-A23E-DB11-BBF1-0014221C4264} & etc = 10059 Информация трассировки стека: исключение типа System.Web.HttpUnhandledException было сгенерировано. в System.Web.UI.Page.HandleError(исключение e) в System.Web.UI.Page.ProcessRequestMain() в System.Web.UI.Page.ProcessRequest() в System.Web.UI.Page.ProcessRequest(HttpContext) контекст) в System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, логический и завершенный в синхронном режиме) в Microsoft.Crm., CObjectName& SourceObject, Int32 TargetObjectType, Int32 TargetFieldType) в Майкрософт.Application.Forms.EndUserForm.RetrieveParams () в Microsoft.Crm.Application.Forms.EndUserForm.Initialize (Entity entity) в Microsoft.Crm.Application.Forms.CustomizableForm.Execute (сущность Entity, строка String formId, строка типа MicroType) ft.Crm.Application.Forms.CustomizableForm.Execute (сущность сущности) в Microsoft.Crm.Application.Pages.UserDefined.DetailPage.ConfigureForm () в Microsoft.Crm.Application.Controls.AppPage.OnPreRender(EventArgs e) в системе. Web.UI.Control.PreRenderRecursiveInternal() в System.Web.UI.Page.ProcessRequestMain() Тип: платформа
На самом деле это может быть более полезное сообщение об ошибке. Вышеупомянутое обнаружилось дважды, но этот получает множество очков каждую минуту:
в User.GetPrivilege(String priv, глубина PRIVILEGE_DEPTH) в User.GetPrivilege(Int32 objectType, PrivilegeId privilegeId) в AppMenuBar. formName) в AppFormMenuBar.Execute(PrivilegeCheck privilegeCheck) в AccountDetailPage.ConfigureMenus() в AppPage.OnPreRender(EventArgs e) в Control.PreRenderRecursiveInternal() в Page.ProcessRequestMain () в контексте страницы. в CallHandlerExecutionStep.System.Web.HttpApplication + IExecutionStep.Execute () в HttpApplication.ExecuteStep (шаг IExecutionStep, логический и завершенный синхронно) в HttpApplication.ResumeSteps (контекст исключительной ситуации) Объект extraData) в HttpRuntime.ProcessRequestInternal (HttpWorkerRequest wr) в HttpRuntime. ProcessRequest (HttpWorkerRequest wr) на ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
Сбой проверки привилегий Для пользователя:, у пользователя нет привилегии: {9f2b415e-8a0c-430c-bdd1-ad2052b86b02}
В последней строке отображается множество разных пользователей. Что-нибудь?
1 ответ
Похоже, что вы делаете неподдерживаемые прямые модификации SQL в базе данных. Если это является причиной ошибок, вы, вероятно, в беде. Вы говорите, что трассировка не включается, вы добавили следующие ключи в реестр и выполнили сброс IIS? - http://support.microsoft.com/kb/907490
РЕДАКТИРОВАТЬ:
Можете ли вы выполнить следующий запрос, заменив имя базы данных именем из вашего экземпляра, и сообщите мне, если появится привилегия. Вероятно, вам не хватает этой привилегии для роли безопасности пользователей, для которой она выдает эту ошибку.
SELECT [PrivilegeId]
,[Name]
,[CanBeLocal]
,[CanBeDeep]
,[VersionNumber]
,[CanBeGlobal]
,[CanBeBasic]
,[AccessRight]
,[IsDisabledWhenIntegrated]
FROM [MyCrmDatabase_MSCRM].[dbo].[PrivilegeBase]
WHERE privilegeid='9f2b415e-8a0c-430c-bdd1-ad2052b86b02'