2010年9月17日 星期五

BugNet Devepoler 角色查看Issue

同事使用BugNet的角色將之設定為Developer, 因為望文生義,所以只幫他勾選了這個角色

有天他登入後,查看Issue List, 點選了某一筆的IssueTitle, 接著畫面就呆住不動等啊等的,出現了了這個錯誤.

Object reference not set to an instance of an object.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   BugNET.Issues.IssueDetail.SetFieldSecurity() in C:\BugNet\WebSite\Issues\IssueDetail.aspx.cs:487
   BugNET.Issues.IssueDetail.Page_PreRender(Object sender, EventArgs e) in C:\NET\BugNet\WebSite\Issues\IssueDetail.aspx.cs:139
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +24
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Control.PreRenderRecursiveInternal() +112
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4184


debug後在 IssueDetail.aspx.cs SetFieldSecurity 方法, 倒數幾行
if (!ITUser.HasPermission(ProjectId, Globals.Permission.CLOSE_ISSUE.ToString()))
 {
     Status s = Status.GetStatusByProjectId(ProjectId).Find(delegate(Status status){return status.IsClosedState == true;});
       if (s !=null)
        {
            DropDownList stat = (DropDownList)DropStatus.FindControl("dropStatus");
            stat.Items.Remove(stat.Items.FindByValue(s.Id.ToString()));
        }
  }

加入紅字判斷物件是否存在即可.


另外原先下載的sourcre中,少了一個 /jHtmlArea/scripts/jHtmlArea-0.7.0.js目錄及檔案,導致查看issue detail時,會有javascript 找不到屬性或方法的錯.

可以到此網站下載, 在專案中將目錄及檔案加入即可,不然開啟查看明細的page時,要等很久.

2 則留言:

  1. 這2天正好也在裝 Bn, 本來以為頂多半天的事情, 郤被 pop3 收信轉 ISSUE 功能困住了。

    不管我如何設定 BN 似乎都不會到指定的帳戶收信, SMTP 設錯了在log 中還有 error , 但 POP3 不論怎麼設, 就是沒有任何反應連錯誤訊息都沒有

    請問你是否曾用使用這項功能成功過呢

    回覆刪除
  2. 我測了一下,web.config的MailBoxReaderModule要打開,看起來是有在跑,因為不斷有BugNET.HttpModules.MailboxReaderModule.ScheduledWorkCallback(Object sender)的錯 不太了解這個功能要幹什麼咧?要研究一下.

    回覆刪除

自動記錄滑鼠點選操作

為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...