C# 只能从本地主机访问Web服务?

C# 只能从本地主机访问Web服务?,c#,jquery,json,web-services,C#,Jquery,Json,Web Services,我试图通过指向MVC5控制器的jQueryAjax调用从Web服务获取JSON。当我在VisualStudio(2013)中本地运行它时,它工作正常,但每当我将它部署到服务器时,都会出现错误。webservice是一种基于云的服务 我搞不懂这个问题 当我试图从JS中的fail函数中获取错误时,我只得到“error”,“notfound” 代码 控制器: public string GetJson2() { string url = "*private*";

我试图通过指向MVC5控制器的jQueryAjax调用从Web服务获取JSON。当我在VisualStudio(2013)中本地运行它时,它工作正常,但每当我将它部署到服务器时,都会出现错误。webservice是一种基于云的服务

我搞不懂这个问题

当我试图从JS中的fail函数中获取错误时,我只得到“error”,“notfound”

代码

控制器:

public string GetJson2()
    {
        string url = "*private*";
        using (var client = new WebClient())
        {
            //JavaScriptSerializer jss = new JavaScriptSerializer();
            string json = client.DownloadString(url);
            //var tracks = jss.Deserialize<Tracks>(json);
            //string output = jss.Serialize(tracks);
            // TODO: do something with the model
            return json;
        }
    }
公共字符串GetJson2()
{
字符串url=“*private*”;
使用(var client=new WebClient())
{
//JavaScriptSerializer jss=新的JavaScriptSerializer();
string json=client.DownloadString(url);
//var tracks=jss.Deserialize(json);
//字符串输出=jss.Serialize(tracks);
//TODO:对模型做些什么
返回json;
}
}
Javascript:

$.getJSON("/Home/GetJson2")
.done(function (data) {
    var string = "<table>";
    var tbody = "";
    var count = 0;
    var header = "<tr>";
    // On success, 'data' contains a list of documents.
    $.each(data, function () {
        tbody += "<tr>";
        $.each(this, function (k, v) {
            if (count == 0) { header += "<th>" + k + "</th>"; }
            tbody += "<td>" +  v + "</td>";
        });
        tbody += "</tr>";
        count += 1;
    });
    header += "</tr>";
    var table = string + header + tbody;
    table += "</table>";
    $("#results").html(table);
})
.fail(function (x, y, z) { alert(x); alert(y); alert(z); });
$.getJSON(“/Home/GetJson2”)
.完成(功能(数据){
var字符串=”;
var tbody=“”;
var计数=0;
var header=“”;
//成功时,“数据”包含文档列表。
$。每个(数据、函数(){
tbody+=”;
$。每个(此,函数(k,v){
如果(计数==0){header+=“”+k+“”;}
t车身+=“”+v+“”;
});
tbody+=”;
计数+=1;
});
标题+=“”;
变量表=字符串+表头+表体;
表+=”;
$(“#结果”).html(表格);
})
.fail(函数(x,y,z){alert(x);alert(y);alert(z);});
如果我需要提供任何其他东西,请告诉我

谢谢

更新

这似乎更像是一个MVC问题,而不是一个webservice问题,因为当我在浏览器中直接导航到上面的控制器时,我会看到一个404页面,所以似乎我没有正确配置一些东西?同样,我可以直接在localhost中导航,但不能在服务器上导航

更新2


我解决了路由问题,现在在尝试从Web服务获取数据时收到500个错误。再一次在当地效果很好。我现在在黑暗中拍摄。

http响应代码是404吗?可能DNS没有正确设置为指向远程服务器。我确实从控制器的呼叫中得到了404。如何将DNS设置为指向远程服务器?请首先尝试在浏览器中使用相同的url,然后查看服务器的说明。您是否已部署到网站的根目录,或域下的虚拟网站?(因为你的URL是根相对的)当我直接进入浏览器ie中的控制器时:“我得到一个404。如果我在localhost中也这样做,它就会工作。为什么在localhost中工作而在部署时不工作?当您在任何服务器中部署它时,请确保所有其他资源都相应地保留,而不仅仅是代码文件。检查war文件,如果需要,手动添加它。