2011-07-19 30 views
1

想知道是否有人可以提供幫助。我們已經編寫了大量標註與Microsoft CRM 4.0一起使用,這些都可以正常工作,並且和預期的一樣。但是我們注意到,每次出現一個標註錯誤時,錯誤消息都會顯示給用戶(如預期的那樣),但也會放入Windows事件日誌的「應用程序」選項卡中。這不是一個大問題,但是它會填滿事件日誌。有沒有辦法停止發佈到事件日誌的標註錯誤?標註,並顯示錯誤消息的Microsoft CRM 4.0應用程序事件日誌錯誤

實施例顯示給用戶和事件日誌:

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

兩個快速件事:

  • 事件觀看者將自動刪除舊的事件和事件的該最大數量可以通過右鍵單擊日誌並選擇屬性在事件查看器中設置。所以事件的數量應該不會太大,因爲考慮到它會降低舊事件的數量。

  • 您可能不應該在這些標註/插件中出現錯誤。一般來說,您應該阻止用戶發起他們不被允許執行的操作。如果你有意不讓用戶更新任務,那可能是我在表單代碼中有條件處理的事情(在JavaScript中檢查權限並使字段爲只讀)。我也明白你在舉一個例子,所以我可能不瞭解問題的嚴重程度。

我不知道任何特定的方式,以防止寫入日誌錯誤,這在我看來是一個相當危險的做法,因爲你可能會錯過一些非常重要。您可以嘗試挑選常見錯誤並將其過濾掉?

相關問題