2014-10-29 56 views
0

以下代碼在發佈到本地主機後正在完善。所以我從我的本地主機複製文件並將它們放在服務器上。現在它說它找不到網絡方法。該項目是一個MVC項目,不起作用的是一個單獨的aspx頁面添加到項目目錄。所以,我不知道這是否與IIS有關。任何想法將不勝感激。發佈到生產服務器後未找到Web方法

 [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 2014-10-29 13:48:41

+0

嗨達斯頓 - 這讓它工作。問題在於路線,它是跟隨MVC路線,並沒有找到頁面。這將如預期的那樣。感謝回覆! http://stackoverflow.com/questions/9683426/ajax-webmethod-call-returns-404-on-mvc3 – dave 2014-10-29 14:07:36

回答

1

在我的情況下,將IgnoreRoute添加到RegisterRoutes()讓我走了。現在,aspx.cs「靜態」託管[webmethod]加載... url:'LearnKO.aspx/FetchStudents',

aJax正在拋出一個404 - 未找到任何page.aspx/webmethod調用。

即。修復:

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

我在一個MVC項目,而不是建議空ASP.NET ...我的壞設立http://www.c-sharpcorner.com/UploadFile/1492b1/learning-knockout-part-1-introduction-to-knockout-js-and-cr/

+0

謝謝...... @ StevoKeano ..它正在工作。非常感謝。 – 2015-11-09 10:11:36