Ошибки журнала событий приложения Microsoft CRM 4.0 - PullRequest
1 голос
/ 19 июля 2011

интересно, если кто-то может помочь.Мы написали большое количество выносок для использования с Microsoft CRM 4.0, все они работают нормально и, как и ожидалось.Однако мы заметили, что каждый раз, когда возникает ошибка с одним из выносок, сообщение об ошибке отображается пользователю (как и ожидалось), а также помещается на вкладку «Приложение» в журнале событий Windows.Это не большая проблема, однако она несколько заполняет журнал событий!Есть ли способ остановить сообщения об ошибках в журнале событий?

Пример вызова с отображением сообщения об ошибке для пользователя и журнала событий:

public override PreCalloutReturnValue PreSetState(CalloutUserContext userContext, CalloutEntityContext entityContext, ref int newStateCode, ref int newStatusCode, ref string errorMessage)
            {
                try
                {
                    switch (entityContext.EntityTypeCode)
                    {
                        case Constants.TASK:

                            TaskCode taskCode = new TaskCode(ref _oServ, userContext.UserId);
                            task oTask = taskCode.GetTask(entityContext.InstanceId,
                                new string[]{"activityid", 
                                    "new_isdiscountauthorisation",  
                                    "new_discountstatus",
                                    "regardingobjectid",
                                    "isworkflowcreated"});

                            //*** only certain people able to update tasks (including owner) ***
                            if (!taskCode.PermitUpdate(userContext.UserId, entityContext.InstanceId))
                            {
                                errorMessage = "Only priveleged users and the owner of this task are permitted to update it";
                                return PreCalloutReturnValue.Abort;
                            }

                            break;

                            etc...................
                            etc...................



                    }
                }
                catch (Exception ex) { Utilities.LogError(ex, userContext.UserId); }

                return base.PreSetState(userContext, entityContext, ref newStateCode, ref newStatusCode, ref errorMessage);
            } 

1 Ответ

1 голос
/ 20 июля 2011

Две быстрые вещи:

  • Программа просмотра событий автоматически удаляет более старые события, и это максимальное количество событий можно установить в программе просмотра событий, щелкнув правой кнопкой мыши журнал и выбрав свойства.Таким образом, количество событий не должно иметь большого значения, учитывая, что оно просто отбросит старые.

  • Вы, вероятно, не должны получать ошибки в этих выносках / плагинах для начала.Как правило, вы должны запрещать пользователям запускать действия, которые им не разрешено делать.Если вы намеренно хотите запретить пользователям обновлять задачу, это может быть условно обработано в коде формы (проверка разрешений в javascript и создание полей только для чтения).Я также понимаю, что вы приводите пример, поэтому я не могу понять масштаб проблемы.

Я не знаю какого-либо конкретного способа предотвращения ошибок при записи в журнал,и это кажется мне довольно опасной практикой, поскольку вы можете упустить что-то очень важное.Вы можете попробовать выбрать типичные ошибки и отфильтровать их?

...