2016-11-10 39 views
0

我在C#中有一個webService,當我不重載它時,它完美地工作。 當我重載並與AJAX後,它會給出一個錯誤。Ajax過載重載c#web服務方法

$.ajax({ 
    type: "POST", 
    url: "http://localhost:6783/asd.asmx/add", 
    data: data, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (msg) { 
     console.log(msg); 
    }, 
    error: function() { 
     alert("this error"); 
    } 
}); 
在C#

[WebMethod(MessageName = "add2")] 
public int add(int a,int b) 
{ 
    return a+b; 
} 

[WebMethod(MessageName = "add3")] 
public int add(int a, int b, int c) 
{ 
    return a + b + c; 
} 

我加了這一點:

[WebServiceBinding(ConformsTo = WsiProfiles.None)] 

而且當我測試的Web服務,它的工作原理。但是,當我用ajax調用時,它不起作用。

+2

您有什麼樣的錯誤? CORS? – Jamby

+0

未知的Web方法添加。 參數名稱:methodName 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.ArgumentException:未知的Web方法添加。 參數名稱:methodName 源錯誤: 執行當前Web請求期間生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。 – Anivia

+0

您正在調用'addnumber' - 該方法不存在。至少不在你提供的示例代碼 –

回答

0

如果添加MessageName屬性,則必須使用MessageName作爲端點。 如myservice.asmx/mymessagename

本頁面http://www.c-sharpcorner.com/UploadFile/00a8b7/web-service/說:

the 「SumOfNums MessageName="SumOfFloats"」 method will be known as 「SumOfFloats」 for client applications.

+0

爲了澄清,你所說的是調用重載方法,而不是調用「http:// localhost:6783/asd.asmx/add」,他們需要調用「http:// localhost:6783/asd .asmx/add2「或」http:// localhost:6783/asd.asmx/add3「,正確嗎?如果是這樣,您應該將具體信息添加到您的答案中 – Taegost