C#调试WebService
簡(jiǎn)單調(diào)試
1、首先,新建一個(gè)WebService項(xiàng)目用于測(cè)試,如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?2、項(xiàng)目會(huì)默認(rèn)生成一個(gè)Hello方法,但是由于Hello方法太簡(jiǎn)單,添加一個(gè)Add方法用于計(jì)算兩個(gè)整數(shù)之和,如下圖所示:
[WebMethod]public string HelloWorld(){return "Hello World";}[WebMethod]public int Add(int a, int b) => a + b;3、右鍵點(diǎn)擊 WebService1.asmx ,選擇 “在瀏覽器中查看” 這一選項(xiàng)。?如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
4、在瀏覽器運(yùn)行的網(wǎng)頁(yè)中,選擇“Add”方法。?如下圖所示:
?
?
5、點(diǎn)擊“Add”方法,輸入兩個(gè)參數(shù),點(diǎn)擊調(diào)試,即可。?
? ? ? ? ? ? ? ? ? ? ? ??
?
6、結(jié)果如下圖所示:?
在其他項(xiàng)目中調(diào)試?
以上調(diào)試存在一個(gè)問(wèn)題,無(wú)法直接調(diào)試WebService中的代碼,如何WebService中的代碼報(bào)錯(cuò),只能返回報(bào)錯(cuò)結(jié)果。無(wú)法跟蹤定位到具體代碼。如下圖中的MyTest()方法,邏輯復(fù)雜,代碼量大,很有可能在某一段報(bào)錯(cuò):
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、新建一個(gè)Winform項(xiàng)目,如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2、在Winform項(xiàng)目中?,引用WebService,如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
3、在Winform項(xiàng)目中,加入調(diào)試代碼,如下圖所示:
private void button1_Click(object sender, EventArgs e){ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();var result = client.MyTest();}?
4、選擇WebService項(xiàng)目,右鍵選擇“調(diào)試”?,“啟動(dòng)新實(shí)例”,如下圖所示:
5、在URL輸入 直接運(yùn)行?WebService1.asmx 后的調(diào)試地址,如下圖所示:
6、以同樣的方法,選擇Winform項(xiàng)目,右鍵“調(diào)試”,然后選擇“啟動(dòng)新實(shí)例”,運(yùn)行WinForm項(xiàng)目,然后在WebService中打上斷點(diǎn),?便可調(diào)試WebService中的代碼,如下圖所示:
? ? ? ??
?
?
?
總結(jié)
以上是生活随笔為你收集整理的C#调试WebService的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 求1+2+3+……+100的累加和。
- 下一篇: C# partial 部分类使用简单举例