2

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

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

这是使用的相应ajax调用jQuery

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:我在构建文件时遇到错误,但该站点在我的本地主机中。这个错误是否给我调试 WebMethod 带来了麻烦?或者说清楚

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

4

2 回答 2

1

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

此外,使用 Chrome 开发者工具 Network Tab 对调试 web 方法非常有用。

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

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

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

而对于通过 IIS 进行调试,我使用w3wp.exe了附加到它的进程。

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

于 2013-09-26T21:24:30.693 回答