Я пытаюсь вызвать через ajax WebMethod, размещенный на традиционной странице кода для ASP.Net WebForm. Вот код для 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» или что здесь происходит.
Вот вызов 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. У кого-нибудь есть мысли?