簡體   English   中英

如何在ASP.NET中調試WebMethod

[英]How to debug a WebMethod in ASP.NET

我的fileName.asmx.cs文件中包含以下WebMethod

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetData(string value)
    {
        //-----
        //Respective code querying the database
        //-----
    }

這是使用jQuery的相應ajax調用

getData: function (type) {        
        var response = "";
        $.ajax({
            type: "POST",
            dataType: 'json',
            url: "../GetData",
            data: '{value:' + type.toString() + '}',
            async: false,
            contentType: "application/json; charset=utf-8",
            success: function (msg) {
                console.log('succes', msg)
                response = msg;
            }
        });
        return response.d;
    }

我在WebMethod添加了斷點以進行調試,但是斷點並未介入。 我正在嘗試在我的localhost:2133上執行此操作,參考一些SO Answers我也嘗試附加以下過程,但未成功。

在此處輸入圖片說明

如果沒有調試,我將無法解決錯誤,因為我已經浪費了幾個小時,所以我在這里發布了文章。

有人可以指導我(幾個截圖會更有用) 如何在ASP.NET中調試WebMethod?

更新1:我還嘗試將Console.WriteLine()放入WebMethod 但是在VS2012的輸出屏幕上沒有任何顯示。

更新2:我在構建文件時遇到錯誤,但是該站點已在我的localhost中啟動。 是此錯誤導致我調試WebMethod時遇到麻煩嗎? 還是要清楚

只能調試干凈的代碼(沒有錯誤)?

我通過在數據庫的調試日志中插入數據來在ASP.NET中進行所有網站調試。 此方法非常簡單,無論從客戶端如何調用服務器,該方法始終有效(因為頁面加載,對Web服務的調用以及頁面的回調都導致不同的服務器功能和返回狀態)

另外,使用Chrome開發人員工具的“網絡標簽”對於調試網絡方法非常有用。

  1. 打開將要發出Web請求的頁面
  2. 打開Chrome的開發者工具,轉到“網絡”標簽
  3. 觸發Web請求。 現在,您將在網絡標簽中看到一行添加到結果的行,其中包含Web方法的名稱及其URL。 單擊該名稱,您將看到5個選項卡:標題,預覽,響應,Cookie和時間。 如果您的網絡方法拋出錯誤,並且您已設置站點以在aspx頁面上顯示堆棧跟蹤,則“響應”頁面實際上將向您顯示已創建的呈現錯誤頁面。

經過漫長的奮斗(一整天),我發現了造成我問題的原因。 我無法調試的原因是由於2個錯誤。

我沒有考慮修復,因為這僅僅是許可證錯誤。 現在,我了解到只能調試干凈的(無錯誤代碼)Web Service。

為了通過IIS進行調試,我使用了附加到它的w3wp.exe進程。

這對我有很多幫助http://forums.iis.net/t/1154992.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM