我正在尝试通过 ajax 调用托管在传统 ASP.Net WebForm 代码隐藏页面中的 WebMethod。下面是 WebMethod 的代码:
[WebMethod]
public static object States()
{
StateProvince[] states = new StateProvince[] { };
ApplicationServiceClient proxy = null;
try
{
proxy = new ApplicationServiceClient();
states = proxy.GetStateProvinces();
}
finally
{
CloseServiceProxy(proxy);
}
return states;
}
WebMethod 在我的独立开发环境中工作得很好,或者如果正常部署到 IIS,但是当我将 aspx 页面部署到 Sitefinity 时,调用它时会出现以下异常:
“/”应用程序中的服务器错误。
未知的网络方法 States.aspx。
参数名称:methodName
我不确定 Sitefinity 是否在劫持 URL 并在后挂起“.aspx”或这里发生了什么。
这是调用 web 方法的 jquery 调用:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Regions.aspx/States",
data: "{}",
success: function(data) {
// implementation omitted
},
error: function(xhr, msg) {
alert(xhr.responseText);
}
});
我可以通过使用 Fiddler 手动发布请求来复制问题。
同样,这在任何地方都可以正常工作,除非部署到 Sitefinity。有人有什么想法吗?