怎样用js调用wcf服务

JavaScript013

怎样用js调用wcf服务,第1张

需要System.Web.Extensions.dll(可能需要AJAXExtensionsToolbox.dll)

网上下载ASPAJAXExtSetup

使用的时候把上面的2个dll放到bin下,并添加引用(一般服务器没有安装ASPAJAXExtSetup)

==============================

Web服务

==============================

using System

using System.Web

using System.Collections

using System.Web.Services

using System.Web.Services.Protocols

using System.Web.Script.Services

using System.Data

using System.Text.RegularExpressions

/// <summary>

/// addComment 的摘要说明

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[ScriptService]

public class manageComment : System.Web.Services.WebService

{

[WebMethod(EnableSession = true)]

public string CommentByID(string userName)

{

//支持session

}

public string DeleteHostComment(int replayID)

{

}

}

aspx页面设置web服务文件的路径

===============================

<asp:ScriptManager ID="smAddComment" runat="server">

<Services>

<asp:ServiceReference Path="~/WS/manageComment.asmx" />

</Services>

</asp:ScriptManager>

js调用

=================================

manageComment.CommentByID('名称')

manageComment.DeleteHostComment(1)

tip:调用的格式->[命名空间.]类名.方法名(参数1[,参数2……])

[OperationContract(Name="sayHelloJson")]

[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]

String sayHello()

[OperationContract(Name = "SendMessageJson")]

[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]

String SendMessage(String Message)

比如说第一个不带参数的:http://localhost:8000/Service/Json/sayHello

那么第二个带参数的应该怎么调用?(比如说参数是"abc")

我指的是在浏览器中或java的httpclient中,因为我准备在android上实现客户端,所以.net的调用方式就不必讲了。

你URITemplate已经设置了。Get方式。

我猜测一下调用的URL应该是: 网站URL/SendMessage/你好

另外建议你使用REST WCF自带的一个帮助页面,里面会给出更精确的调用示例。

1.网页本身的问题,目前许多网站都是用的免费共享型模板,一般这样的模板都存在不通用,原模板的所有js(javascript)脚本可能又没有被完全用到。加之设计者的水平或是疏忽等问题。导致在页面上找不到js对象。就会显示出网页有问题的现象。

2.用户电脑本身问题。如是用的浏览器的版本问题,或者所浏览页面需要某些插件和组件,可能曾经设置屏蔽和没有安装都可能出现网页上有错误问题。

3.恶意病毒和流氓插件引起。许多网民在不知情的情况下,安装一些带有流氓捆绑插件的安装程序,这样的情况也容易导致出现网页上有错误。

网页上有错误解决办法

手动修复办法:

1、点击“开始”菜单,打开“运行”。

2、输入regsvr32 jscript.dll后选择“确定”。 出现提示(jscript.dll中的DIIRegisterServer成功)后,点击“确定”。

3、再次输入regsvr32 vbscript.dll选择“确定”。 再一次出现提示(vbscript.dll中的DIIRegisterServer成功)后,点“确定”。 经过以上两次成功提示,说明已成功修复IE组件。

4、将浏览器的过滤等功能关闭后,清除一下浏览器的缓存(工具->Internet选项->(在Internet 临时文件框中-删除Cookies),再点Internet 临时文件框中删除文件(记得勾上删除所有脱机内容),确定后,然后再重新打开浏览器尝试!

软件修复办法:

1.下载免费杀毒软件 金山毒霸2011

2.选择系统清理选项,点击立即清理

3.选择安全百宝箱中系统修复,即可解决网页上有错误解问题