我得到了500,[ArgumentException:未知的Web方法GetFacilityInfo。 参数名称:methodName]。看起来一切都井然有序;谷歌搜索问题的大部分结果是人们对是否使用静态感到困惑,但正如你所看到的,我正确地不使用静态方法,因为它是一个真正的网络服务。
var data contents:
clientId:" DevClient" facilityId:" 2"
网络服务:
namespace Sentry.WebMethods
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[ScriptService]
public class FacilityInfoService : WebService
{
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public FacilityInfo GetFacilityInfo(string facilityId, string clientId)
{
try
{
var helper = ObjectFactory.GetInstance<EditCheckDataHelper>();
var facility = helper.GetFacility(Convert.ToInt16(facilityId), clientId);
return facility;
}
catch (Exception ex)
{
ErrorSignal.FromCurrentContext().Raise(ex);
return new FacilityInfo();
}
}
}
}
Javascript电话:
var xhr = $.ajax({
type: "post",
data: JSON.stringify(data),
url: postUrl,
dataType: "text",
contentType: "application/json; charset=utf-8",
async: false,
success: function (respScript) {
if (xhr.status == 200) {
return JSON.parse(respScript).d;
}
},
error: function (xhrObj) {
if (xhrObj.status > 0) {
alert("[" + xhrObj.status + "] Failed to retrieve facility info.");
}
},
complete: function () {
}
});
答案 0 :(得分:0)
问题在于,因为通过Visual Studio添加Web服务.asmx文件是非常惊人的方法(请赐教 - Premium 2012),我复制粘贴了另一个.asmx文件,它是指向标记中的错误类。 (捂脸)