如何从javascript调用WCF服务?

时间:2011-11-18 08:04:29

标签: c# javascript asp.net wcf

我在“服务”文件夹中有一个WCF服务:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Web.Services;
using System.ServiceModel.Activation;
using System.Web.Script.Services;

namespace Application.Services
{
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ScriptService]    
    public class ProductTypeService
    {
        [OperationContract]
        [WebMethod]
        public string LoadMainGridProductType(string test)
        {
            return "Success";
        }
    }
}

在页面上我尝试从javascript调用此服务方法:

$(document).ready(function () {
    var counter = "test";    
    Application.Services.ProductTypeService.LoadMainGridProductType(counter, ResultLoadMainGridProductType, ErrorLoadMainGridProductType);
});
页面上的

我也会对此服务和javascript文件进行协调:

<asp:ScriptManager ID="ScriptManager" runat="server">
            <Scripts>
                <asp:ScriptReference Path="~/Scripts/ProductType.js" />
            </Scripts>
            <Services>
                <asp:ServiceReference Path="~/Services/ProductTypeService.svc" />        
            </Services>
        </asp:ScriptManager>

但代码失败

Application.Services.ProductTypeService.LoadMainGridProductType(counter, ResultLoadMainGridProductType, ErrorLoadMainGridProductType);

错误:Microsoft Jscript的实现错误:“应用程序”不确定。 怎么解决这个???

1 个答案:

答案 0 :(得分:1)

首先,通过直接导航到WCF服务来检查WCF服务是否正常工作,例如http://localhost:(port-number)/Services/ProductTypeService.svc

我怀疑这不起作用并且给你一些错误。

其次,检查以确保jsdebug javascript文件已生成并包含在随应用程序加载的脚本中。

另一个人早先问过类似的问题。 How get namespace on javascript in asp.net web?