当前位置: 首页 > 面试题库 >

在.net 4.0中,asmx Web服务返回xml而不是json

松博耘
2023-03-14
问题内容

我刚刚将我的网站的测试副本升级到asp.net 4.0,并且注意到了一个奇怪的问题,仅当我将网站上传到服务器时才会出现。

该站点有一个返回json的asmx Web服务,但是当我在服务器上运行该站点时,它会返回xml。它在asp.net 3.5中已经运行了一年多。

webMethod装饰有正确的属性…

[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<LocationRecentChange> RecentChanges()

在我的本地计算机上,它返回json。

但在服务器(Windows 2008 64位)上,它返回xml。

使用firebug控制台,您将看到200 OK响应和一堆XML,在我的本地计算机上,返回的数据是我期望的JSON。

这是调用该服务的JavaScript。

function loadRecentData() {
$.ajax({
    type: "POST",
    url: "service/spots.asmx/RecentChanges",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: loadRecentUpdates,
    failure: function(msg) {
        //alert(msg);
    }
});

}

欢迎任何建议,这让我感到困惑!


问题答案:

您确定服务器上已安装.NET 4吗?

NET 4中ScriptHandlerFactory的“类型”字符串为:

System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

现在,ASP.NET
4在计算机级别将其包含在其默认的web.config中。因此,您不需要在项目的web.config,3.5或4中映射到ScriptHandlerFactory。



 类似资料:
  • 以下是我的客户端代码: 和服务: Web.config: null

  • 问题内容: 我需要从C#Web服务获取Json数据。 我知道有一些基于此的问题,相信我,我已经阅读了很多,但只是让我进一步困惑。 这是我所做的: 在我的Web服务中,我包括了:用于类和方法 我还使用了a 将我的数据转换为字符串 我正在使用此服务致电 如果我不使用它,则会收到跨域引用错误。 为此,我必须设置m服务以获取回调函数名称,以便传递t +序列化的Json Data; 但是在输出中我把它包裹起

  • 问题内容: 观察这个小脚本: PHP为什么将JSON对象变成一个类? 如果不是一个数组,它是那么产生完全相同的结果? 问题答案: 采取在的第二个参数仔细看看在https://secure.php.net/json_decode

  • 我试图让2支球队互相比赛。当我说团队1.玩(团队2)时,我称之为;当 i 生成的数字小于 0.5 时,team2 应获胜,如果大于 0.5,则团队 1 应获胜。当团队 1 获胜时,它会正确显示为尼克斯,但当团队 2 获胜时,它会显示内存地址。我怎么能让它正确地说网是赢的,而不是team@78987neu73

  • 我目前正在开发Jersey/Hibernate web服务(在Tomcat 9容器中),它应该能够使用和生成JSON(应用程序/JSON)和XML(应用程序/XML)。它支持GET和POST来使用这些类型。DELETE是受支持的,并且可以工作,对于JSON,GET和POST也是如此。但是,当我尝试使用XML内容类型时,我得到了一个500内部服务器错误。 结构如下:(检查下面的代码)歌曲列表(son

  • 有我的密码 我怎样才能得到异常原因?在我的例子中,如果我运行gradle,从命令行安装(没有jenkins)是:错误:不兼容的类型:不能转换为boolean 但我会在jenkins作业控制台输出中看到错误