简单调试
1、首先,新建一个WebService项目用于测试,如下图所示:
2、项目会默认生成一个Hello方法,但是由于Hello方法太简单,添加一个Add方法用于计算两个整数之和,如下图所示:
[WebMethod]public string HelloWorld(){return "Hello World";}[WebMethod]public int Add(int a, int b) => a + b;
3、右键点击 WebService1.asmx ,选择 “在浏览器中查看” 这一选项。 如下图所示:
4、在浏览器运行的网页中,选择“Add”方法。 如下图所示:
5、点击“Add”方法,输入两个参数,点击调试,即可。
6、结果如下图所示:
在其他项目中调试
以上调试存在一个问题,无法直接调试WebService中的代码,如何WebService中的代码报错,只能返回报错结果。无法跟踪定位到具体代码。如下图中的MyTest()方法,逻辑复杂,代码量大,很有可能在某一段报错:
public class WebService1 : System.Web.Services.WebService{[WebMethod]public string HelloWorld(){return "Hello World";}[WebMethod]public int Add(int a, int b) => a + b;[WebMethod]public Z_SRM_PO_D_CRTResponse MyTest(){ServiceReference1.ZSRMPODCRTClient client = new ServiceReference1.ZSRMPODCRTClient();ServiceReference1.ZSSRMPOPRHEADER header = new ZSSRMPOPRHEADER();header.BUKRS = "1001";header.DOWNPAY_AMOUNT = 0m;header.DOWNPAY_DUEDATE = "";header.DOWNPAY_PERCENT = 0m;header.DOWNPAY_TYPE = "";header.QDTEXT = "";header.EKGRP = "119";header.EKORG = "1000";header.JZTEXT = "";header.LIFNR = "10000016";header.WAERS = "CNY";header.ZTERM = "0001";ZSSRMPOPRITEM item = new ZSSRMPOPRITEM();item.EINDT = "2019-07-20";item.ITEM_CAT = "";item.MATNR = "20008966";item.MEINS = "EA";item.MENGE = 40m;item.MWSKZ = "JA";item.NETPR = 40m;item.OVER_DLV_TOL = 0m;item.PEINH = 1m;item.PREQ_ITEM = "";item.PREQ_NO = "";item.STGE_LOC = "";item.UNDER_DLV_TOL = 0m;item.WERKS = "1101";ServiceReference1.ZSSRMPOPRITEM [] items = new ZSSRMPOPRITEM[] { item };ServiceReference1.Z_SRM_PO_D_CRT cat = new ServiceReference1.Z_SRM_PO_D_CRT();cat.ET_ITEM = items;cat.T_DATA = header;cat.TKTEXT = "";Z_SRM_PO_D_CRTResponse reponse = client.Z_SRM_PO_D_CRT(cat);return reponse;}}
1、新建一个Winform项目,如下图所示:
2、在Winform项目中 ,引用WebService,如下图所示:
3、在Winform项目中,加入调试代码,如下图所示:
private void button1_Click(object sender, EventArgs e){ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();var result = client.MyTest();}
4、选择WebService项目,右键选择“调试” ,“启动新实例”,如下图所示:
5、在URL输入 直接运行 WebService1.asmx 后的调试地址,如下图所示:
6、以同样的方法,选择Winform项目,右键“调试”,然后选择“启动新实例”,运行WinForm项目,然后在WebService中打上断点, 便可调试WebService中的代码,如下图所示: