Следующий код работает после публикации на моем localhost. Поэтому я скопировал файлы с моего локального хоста и разместил их на сервере. Теперь он говорит, что не может найти веб-метод. Проект - проект MVC, а то, что не работает, - это отдельная страница aspx, добавленная в каталог проекта. Итак, я не знаю, связано ли это с IIS. Любые идеи очень приветствуются.Веб-метод 404 не найден после публикации на производственном сервере
[WebMethod]
public static string LoadPatients(string phone, string user)
{
//SOME STUFF HERE THAT WAS EXCLUDED//
var sb = new StringBuilder();
for (var x = 0; x < Callerdt.Rows.Count; x++)
{
var addr = Callerdt.Rows[x]["Street"].ToString() + " " + Callerdt.Rows[x]["city"].ToString() + ", " + Callerdt.Rows[x]["State"].ToString() + " " + Callerdt.Rows[x]["ZipCode"].ToString();
sb.AppendFormat("<div class='tabs'><table>" +
"<tr><td class='title'><label>Name:</label></td><td>{0}</td></tr>" +
"<tr><td><label>DOB:</label></td><td>{1}</td></tr>" +
"<tr><td><label>Address:</label></td><td>{2}</td></tr>" +
"<tr><td><label>SSN:</label></td><td>{3}</td></tr>" +
"<tr><td><label>Z Number:</label></td><td>{4}</td></tr>" +
"</table></div><br/>", Callerdt.Rows[x]["Name"].ToString(), Callerdt.Rows[x]["DOB"].ToString(), addr, Callerdt.Rows[x]["SSN"].ToString(), Callerdt.Rows[x]["ZNUM"].ToString());
}
ret = sb.ToString();
return ret;
}
<script type="text/javascript">
$(document).ready(function() {
var p = document.getElementById('pn').value, u = document.getElementById('user').value, er = document.getElementById('error').value;
if (!(er == "true")) {
$("#loading").show();
$.ajax({
type: "POST",
url: 'CallerPopup.aspx/LoadPatients',
data: JSON.stringify({ phone: p, user: u }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$('#tabs').append(data.d);
},
complete: function() {
$("#loading").hide();
}
});
}
});
</script>
У вас есть дружественные URL-адреса? У меня есть этот комментарий в моем приложении: «Что бы вы ни делали, не устанавливайте AutoRedirectMode = RedirectMode.Permanent. Это нарушит вызов PageMethods, и все приложение завершится неудачно. – Duston
Hi Duston - Это заработало. Проблема была в маршрутах, она шла по маршрутам MVC и не находила страницу. Как и ожидалось. Спасибо за ответ! http://stackoverflow.com/questions/9683426/ajax-webmethod-call-returns-404-on-mvc3 – dave