2012-01-05 19 views
2

出於某種奇怪的原因,我無法調試靜態web方法中的代碼。代碼本身是這樣的:無法在C#/ ASP.NET中調試靜態webmethod

public partial class StoredProcedures : BasePage//Inherits from System.Web.UI.Page 
{ 
    ........................... 
    [WebMethod(EnableSession = true)] 
    public static object ProcedureList(int jtStartIndex, int jtPageSize, string jtSorting) 
    { 
     if (jtStartIndex == null) 
      jtStartIndex = 0; 
     if (jtPageSize == null) 
      jtPageSize = 0; 
     if (string.IsNullOrEmpty(jtSorting)) 
      jtSorting = null; 
     //Get data from database 
     string sql = "select object_name as Name, status as Status, created as Created from user_objects where object_type = 'PROCEDURE'"; 
     DataTable ds = RequestSingleton.DBConnection.GetDataTable(sql); 
     int procCount = ds.Rows.Count; 
     if (procCount != 0) 
     { 
      DataFiller<StoredProc> dtfStoredProc = new DataFiller<StoredProc>(); 
      List<StoredProc> list = null; 
      list = dtfStoredProc.FromDataTableToList(ds); 
     ......................... 
     .............................. 

jQuery的調用靜態方法,如果我插入靜態方法中斷點,他們不使用。這可能是顯而易見的,我錯過了,但似乎有點奇怪,我無法調試webmethod。問題是我想看看那裏發生了什麼事情,因爲有些事情是不對的,如果沒有調試,這有點難。 在ASP.NET項目中的任何其他位置插入斷點不是問題,但在該代碼塊中,它是。

+1

你能調試一個正常的頁面加載嗎?它只是不工作的JQuery web服務調用嗎? – 2012-01-05 16:53:02

+0

是的,頁面加載和其他未被JQuery調用的方法被正常調試,沒有任何問題。 – 2012-01-08 07:26:15

回答

4

當我發現爲什麼靜態方法不能進行調試:跟蹤的價值在web.config文件必須設置爲true,否則不會調用斷點。 因此,對於在ASP.NET中調試靜態webmethods時可能遇到此問題的人,請檢查trace是否設置爲true。無論pageOutput是false還是true,都必須將trace設置爲true。感謝您的時間和答案。

0

確保通過轉到Web項目的屬性來啓用ASP.NET調試器。選擇Web選項卡,並在該頁面的底部,對於要啓用的調試器有幾個不同的選項。

此外,請確保您是否有多個已連接調試器的項目,如果沒有,則可以轉至工具 - >附加到進程並選擇WebDev.WebServer40.exe進程並附加到該進程。

0

在第一線使用Debugger.Break,它會彈出消息框,詢問附加調試器擊中