【问题标题】:Web method 404 not found after publishing to production server发布到生产服务器后未找到 Web 方法 404
【发布时间】:2014-10-29 12:51:52
【问题描述】:

以下代码在发布到我的本地主机后正在完善。所以我从本地主机复制文件并将它们放在服务器上。现在它说它找不到网络方法。该项目是一个 MVC 项目,不起作用的是一个单独的 aspx 页面添加到项目目录中。所以,我不知道这是否与IIS有关。任何想法将不胜感激。

     [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 - 这让它工作了。问题出在路线上,它遵循 MVC 路线并且没有找到页面..这将是预期的。感谢回复! stackoverflow.com/questions/9683426/…

标签: c# asp.net


【解决方案1】:

在我的情况下,将 IgnoreRoute 添加到 RegisterRoutes() 让我继续前进。现在 aspx.cs“静态”托管 [webmethod] 加载... url: 'LearnKO.aspx/FetchStudents',

aJax 抛出 404 - Not Found on any page.aspx/webmethod 调用。

即。修复:

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

我在 MVC 项目中设置 http://www.c-sharpcorner.com/UploadFile/1492b1/learning-knockout-part-1-introduction-to-knockout-js-and-cr/ 而不是推荐的空 ASP.NET...我的错。

【讨论】:

  • 谢谢...@StevoKeano.. 它正在工作。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多