C# 发布到生产服务器后未找到Web方法404

C# 发布到生产服务器后未找到Web方法404,c#,asp.net,C#,Asp.net,发布到我的本地主机后,以下代码正在运行。因此,我从本地主机复制了这些文件,并将它们放在服务器上。现在它说它找不到web方法。该项目是一个MVC项目,不起作用的是添加到项目目录中的一个单独的aspx页面。所以,我不知道这是否与IIS有关。任何想法都将不胜感激 [WebMethod] public static string LoadPatients(string phone, string user) { //SOME STUFF HERE THAT WA

发布到我的本地主机后,以下代码正在运行。因此,我从本地主机复制了这些文件,并将它们放在服务器上。现在它说它找不到web方法。该项目是一个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>
[WebMethod]
公共静态字符串加载患者(字符串电话、字符串用户)
{
//这里有些被排除在外的东西//
var sb=新的StringBuilder();
对于(var x=0;x”,Callerdt.Rows[x][“Name”].ToString(),Callerdt.Rows[x][“DOB”].ToString(),addr,Callerdt.Rows[x][“SSN”].ToString(),Callerdt.Rows[x][“ZNUM”].ToString();
}
ret=sb.ToString();
返回ret;
}
$(文档).ready(函数(){
var p=document.getElementById('pn').value,u=document.getElementById('user').value,er=document.getElementById('error').value;
如果(!(er==“true”)){
$(“#加载”).show();
$.ajax({
类型:“POST”,
url:'callerpup.aspx/LoadPatients',
数据:JSON.stringify({phone:p,user:u}),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
$(“#制表符”).append(data.d);
},
完成:函数(){
$(“#加载”).hide();
}
});
}
});

在我的例子中,将IgnoreRoute添加到RegisterRoutes()让我走了。现在aspx.cs“静态”托管的[webmethod]加载。。。url:'LearnKO.aspx/FetchStudents'

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

即,解决方案:

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

我是在MVC项目中设置的,而不是推荐的空ASP.NET。。。我的错。

是否启用了友好URL?我在我的应用程序中有这样的评论:“无论你做什么,都不要设置AutoRedirectMode=RedirectMode.Permanent。这将中断PageMethods调用,整个应用程序将失败。嗨,达斯顿-这让它工作了。问题是路由,它遵循MVC路由,没有找到页面。这是意料之中的。谢谢回复!谢谢你…@StevoKeano。。它正在工作。非常感谢你。