网上下载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……])
直接放在data里会把参数以json的形式直接放在body发出去,而的headers里面又设置成了content-type是application/x-www-form-urlencoded,所以就会被认为是formdata,但是其实整个都当一个key了。当然直接用json把数据post上去其实就没问题了,如果一定要postformdata的话,应该要自己拼出来或者用jquery的$.param之类的方法来做。
C++调用WCF写的ServiceContract
一共有几种方式?
C++调用WCF
写的ServiceContract
一共有几种方式?我下面的调用方式虽然能访问但是不理想。
在创建C++工程时候选择
公共语言运行库支持(/clr)
可以添加WEB引用。
并且成功创建代理类。
也可以调用WCF提供的OperationContract具体方法。
但是有一个问题,由于以上操作选择了
公共语言运行库支持(/clr)
,这样会不会要求C++客户端程序强制安装.net
freamwork的托管运行环境。从而增加客户端的安装复杂性。
如果要求安装.net
freamwork的托管运行环境,那么有什么好的方法可以不选择
公共语言运行库支持(/clr)
。或者不安装.net
freamwork的托管运行环境,也可以使用WCF提供的
ServiceContract。
也就是C++调用WCF
写的ServiceContract
一共有几种方式?
小弟刚研究WCF不长时间,但是有WEBSERVICE基础(WEBSERVICE的安全也不会做),多谢各位前辈。
-----------------
大家有以下几种吧,
1.直接调用,把WCF服务暴露为Web服务,如果C++可以直接调用Web服务,那么也可以直接调WCF服务。
2.把WCF服务暴露为Rest
服务,C++如果可以调用普通的网页,通过Http标准操作,Get,Put,post等那么它也可以直接调用Rest
WCF服务。
3.另外就是把调用WCF服务的客户端包装成程序集,然后C++代码调用程序集里的C#代码。
前两种方式应该操作性更强吧。