C# 使用JSON访问webservice引用时未找到webservice

C# 使用JSON访问webservice引用时未找到webservice,c#,asp.net,json,web-services,C#,Asp.net,Json,Web Services,我已经搜索过了,但还没有找到解决方案 当我想用JSON访问我的web服务“costService.asmx”时,客户端实时更新asp:chart,我从JSON得到一个错误,说找不到web服务“costService” 我几乎什么都试过了: 我接着说: 该代码可以工作,但当我将其与自己的服务一起使用时,它就不工作了 我补充说 <webServices> <protocols> <add name="HttpSoap"/>

我已经搜索过了,但还没有找到解决方案

当我想用JSON访问我的web服务“costService.asmx”时,客户端实时更新asp:chart,我从JSON得到一个错误,说找不到web服务“costService”

我几乎什么都试过了: 我接着说:

该代码可以工作,但当我将其与自己的服务一起使用时,它就不工作了

我补充说

<webServices>
    <protocols>
        <add name="HttpSoap"/>
        <add name="HttpPost"/>
        <add name="HttpGet"/>
        <add name="Documentation"/>
        <add name="HttpPostLocalhost"/>
    </protocols>
</webServices>
使用服务中的方法和对象

编辑

我的Web服务类:

namespace CostService {
/// <summary>
/// Summary description for CostService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class CostService : System.Web.Services.WebService {
当我在firebig的Net选项卡下查看时,我看到以下内容: 编辑II

通过将methode放在default.aspx代码中,我已经让它在我的站点上运行。它仍然有一些不完善之处,但显示了包含数据的图表。
现在,当我将url更改为Web服务的url时,我将尝试看看它是否起作用。

如果您根本没有修改您的服务,那么您需要做的第一件事就是确保使用
[ScriptService]
属性修饰服务类。如果您以
application/JSON
的内容类型发布到它,它就能够用JSON响应。如果没有该属性,您将只能获取XML(并且它也不知道如何解释您正在发布的JSON参数字符串)。

检查来自您的服务的标题返回值(例如,通过Firebug的网络面板),并确保它返回
内容类型:text/javascript
。如果内容类型错误,ajax调用(尽管我更喜欢
$.getJSON()
)将失败。您的web服务是否用
[System.web.Script.Services.ScriptService]
装饰器装饰?通常,当您第一次创建服务时,它会被注释掉。您的类需要这个装饰器才能从脚本中调用。我忽略了注释部分,但我已经手动添加了它,它仍然不起作用。如果我把它作为一个单独的项目来处理,那么这个项目的位置对你的JavaScript不会有任何影响,除非你调试的时候你的单独项目没有在Casini中加载和运行。当我在firebug的标签网下查看URL“POST DrawChart”时,我发现一个500内部服务器错误,它的响应头:X-AspNet-Version2.0.50727缓存控制私有内容类型text/html;charset=utf-8请求头:接受应用程序/json,text/javascript,/;q=0.01内容类型应用程序/json;字符集=utf-8
CostServiceProxy.CostServiceSoapClient client = new CostServiceProxy.CostServiceSoapClient();
namespace CostService {
/// <summary>
/// Summary description for CostService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class CostService : System.Web.Services.WebService {
[WebMethod]
public String DrawChart(Int32 iType, double CostToRender) {