如何在ASP.NET中调试WebMethod

时间:2013-09-10 14:37:55

标签: asp.net c#-4.0 visual-studio-2012 visual-studio-debugging

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

[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中添加了断点以进行调试,但它没有插入它。 我正在尝试这样做我的本地主机:2133,参考一些SO答案我也尝试附加以下过程但没有成功。

enter image description here

没有调试我就无法解决错误,因为我已经浪费了几个小时在这里发布了。

有人可以指导我(一些屏幕截图会更有帮助)如何在ASP.NET中调试WebMethod?

更新1:我还尝试在Console.WriteLine()中添加 WebMethod 。但VS2012的输出屏幕中没有显示任何内容。

更新2:我收到错误将构建文件,但该网站已在我的localhost中启动。这个错误导致我调试WebMethod有麻烦吗?或者要清楚

只能调试干净的代码(没有错误)?

2 个答案:

答案 0 :(得分:1)

我通过将数据插入数据库中的调试日志来在ASP.NET中进行所有网站调试。此方法非常简单,无论您从客户端调用服务器的方式如何,它总是有效(因为页面加载,对Web服务的调用以及来自页面的回调都会导致不同的服务器功能和返回状态)

此外,使用Chrome开发人员工具“网络”选项卡对于调试Web方法非常有用。

  1. 打开要发出网络请求的网页
  2. 打开Chrome的开发者工具,转到网络标签
  3. 触发网络请求。现在,您将在网络选项卡中看到一行添加了一行,其中包含Web方法的名称及其URL。单击该名称,您将看到5个选项卡:标题,预览,响应,Cookie和时间。如果您的Web方法发生错误并且您的站点设置为在aspx页面上显示堆栈跟踪,那么“响应”页面将实际显示已创建的呈现错误页面。

答案 1 :(得分:0)

经过长时间的斗争(整整一天),我找到了导致我这个问题的原因。我无法调试的原因是2个错误。

我没有考虑修复,因为它只是一个许可证错误。 现在我了解到只能调试干净(无错代码)的Web服务。

通过IIS进行调试时,我使用了 w3wp.exe 进程。

这对我有很大的帮助http://forums.iis.net/t/1154992.aspx