2014-10-29 85 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