2014-10-29 4 views
0

Следующий код работает после публикации на моем 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> 
+0

У вас есть дружественные URL-адреса? У меня есть этот комментарий в моем приложении: «Что бы вы ни делали, не устанавливайте AutoRedirectMode = RedirectMode.Permanent. Это нарушит вызов PageMethods, и все приложение завершится неудачно. – Duston

+0

Hi Duston - Это заработало. Проблема была в маршрутах, она шла по маршрутам MVC и не находила страницу. Как и ожидалось. Спасибо за ответ! http://stackoverflow.com/questions/9683426/ajax-webmethod-call-returns-404-on-mvc3 – dave

ответ

1

В моем случае, добавив IgnoreRoute в RegisterRoutes(), я пошел. Теперь загружен «статический» aspx.cs «веб-метод» ... url: «LearnKO.aspx/FetchStudents»,

aJax выбрасывает 404 - не найден на любом вызове page.aspx/webmethod.

ie. исправление:

routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 

Я настраивал http://www.c-sharpcorner.com/UploadFile/1492b1/learning-knockout-part-1-introduction-to-knockout-js-and-cr/ в проекте MVC вместо рекомендуемого пустой ASP.NET ... мой плохой.

+0

Спасибо ... @ StevoKeano .. Он работает. Огромное спасибо. –

Смежные вопросы