当前位置:首页 » 编程语言 » php调用wcf

php调用wcf

发布时间: 2022-05-01 15:31:52

⑴ 如何调用带参数的WCF方法

[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自带的一个帮助页面,里面会给出更精确的调用示例。

php中不需要WCF这样的框架吗

ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点:

(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;

(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;

(3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;

(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;

(5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发现哦那个Email或访问文件系统等。

(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

⑶ wcf 调用问题 1.通过vs直接引用服务;2.通过vs命令工具生成代理类; 求大神告知这两方式有什么区别,利弊

WCF服务调用通过两种常用的方式:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式,一种是通过ChannelFactory直接创建服务代理对象进行服务调用。
下面简单说下如何通过SvcUtil.exe的方式调用服务:
SvcUtil.exe是一个命令行工具,位于:C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin目录下,可以将SvcUtil.exe添加到VS2010中方便以后的运用,添加方式:在VS2010的Tools菜单中选择External Tools

点击添加按钮,在Title栏输入SvcUtil,Command栏选择SvcUtil.exe所在的目录,Initial directory栏选择生成的客户端代码和配置文件所放的目录,选上Prompt for arguments,不选上Close on exit,点击OK完成添加。
添加好以后,点击VS2010菜单下的SvcUtil,输入提供元数据的服务终结点的 URL
点击OK,在弹出的命令行中会显示成功与否和相关信息。
如果成功的话会生成两个文件,一个是包含了服务端Contract和对应于服务端service的本地代理类的cs文件,一个是WCF配置文件,将这两个文件拷到项目中并将output.config改名为app.config就可以了。

⑷ 如何:以异步方式调用 WCF 服务操作

接口。通过使用事件驱动的异步调用模型,客户端可以对此接口异步调用操作。(有关基于事件的异步调用模型的更多信息,请参见
Multithreaded Programming with the Event-based Asynchronous Pattern
。有关同步操作和异步操作的更多信息,请参见
同步和异步操作。

⑸ wcf web服务用什么调用方法

1. 创建服务

2. 修改接口

为了做演示,我们将默认的那个Operation修改一下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;
namespace WebApplication1
{
// 注意: 如果更改此处的接口名称 "INorthwindService",也必须更新 Web.config 中对 "INorthwindService" 的引用。
[ServiceContract]
public interface INorthwindService
{
[OperationContract]
[WebGet(UriTemplate="HelloWorld")]
string HelloWorld();
}
}

注意,我们这里加了一个WebGet的Attribute,这将允许WCF服务直接通过地址调用

3. 实现服务

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WebApplication1
{
// 注意: 如果更改此处的类名 "NorthwindService",也必须更新 Web.config 中对 "NorthwindService" 的引用。
public class NorthwindService : INorthwindService
{

#region INorthwindService 成员

public string HelloWorld()
{
return "Hello,world";
}

#endregion
}
}

这里的实现依然是我最喜欢的HelloWorld

4. 修改配置文件(web.config),要支持直接通过WebGet的方法调用WCF服务,必须用一个特殊的binding,是webHttpBinding

<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WebApplication1.NorthwindServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug ="false" />
behavior>
serviceBehaviors>
<endpointBehaviors>
<behavior name="test">
<webHttp/>
behavior>
endpointBehaviors>
behaviors>
<services>
<service behaviorConfiguration="WebApplication1.NorthwindServiceBehavior"
name="WebApplication1.NorthwindService">
<endpoint address="" binding="webHttpBinding" contract="WebApplication1.INorthwindService" behaviorConfiguration="test">
<identity>
<dns value="localhost" />
identity>
endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
service>
services>
system.serviceModel>

上面的粗斜体部分是要添加或者修改的

⑹ php怎么调用wcf服务,调用参数是对象参数

空格换行如:<p></p>
<p>测试测试</p>
<p>测试测试</p>
<p>测试测试</p>
<p>测试测试</p>
<p>测试测试</p>
<p>测试测试</p>
<p>伊巴黎试客联盟</p>
<p>测试测试</p>

⑺ PHP调用.net的wcf和webservice服务

PHP要么用第三方的soap封装类,或者用自带的扩展soap client,这个默认是关闭的。需要去php.ini进行修改。

soap client :
$soap = new SoapClient('http://127.0.0.1/soap_ss.php?wsdl');
$reData = $soap->Helloworld(array('in0'=>'Ken'));

具体的传递的参数、方法可以直接在浏览器访问查看接口

⑻ .Net开发模式选择

这样说明你具有了一定程度的系统设计能力。模块化业务复用结构就是这个这设计目标。
这样有几个问题:
使用一般处理程序来实现我数据读取的方法,会形成一些信息孤岛。如果你的整个程序都是与网页打交道,建议你使用web api技术,api可以跨浏览器服务,也有利用将来业务模块的复用。如果业务较为复杂,建议api只是组装业务(如果基本认证和几个业务模块的组合),而真正的业务模块可以考虑使用wcf技术。思路是wcf是最小的业务模块,比如wcf中存在身份认证功能,存在token分发功能,存在授权功能,存在基本业务功能,而web api功能可以调用wcf中的授权功能,如果授权成功,则调用wcf的基本业务功能。这样wcf处于基本业务层(处理业务逻辑与非业务功能需求),而web api可针对不同的wcf功能进行组合封装,提供给页面或外部其他企业联合调用。wcf进行系统化分部分,而且考虑到wcf的分布部署等多重部署方案,wcf其中一个节点失效则可以使用另一个部署节点。如果单纯的是一般处理程序,则在部署时需要考虑使用负载均衡进行地址的转换,对于将来这种松散的维护等都不是优势。
其他的条目其实只说明了前端。前端在整个系统架构中只是极小的一部分而已。至于前端使用何种方式调用,那只是处于安全等各个方面的考虑而定义的。在我看来,使用ajax调用,其实你的意思只是实现了无刷而已(无刷新页面而调用数据),这种方案实现的方案有很多,比如.net中存在多个无刷控件可以使用。但事实上刷新页面还是局部刷新(无刷)都只是页面的体验问题,整个系统设计时,并不是设计的前端,而是整个系统——要考虑到将来的维护成本,还有复用率等等多种因素,前端是否无刷也只是系统设计中的一个而已。比如后端在设计时,不管你使用handler还是api,它与你页面表现没有任何关系。
你使用模块开发这个概念是不正确的,这里是层级开发,不是模块开发,模块指的是业务分布问题,而层级指的是业务调用问题,如果说模块,你其实应该说进锁存分为三个子系统:进、销、存这个三个系统模块(注:模块有大有小,一个子系统是一个模块,一个功能也是一个模块)
web api的调用有多种,页面后端(aspx页面可以调用,服务器调用,但如果涉及到服务器调用时,建议使用服务器直接调用wcf即可,当然也可以调用api根据不同的功能特性而定),浏览端调用(javascript或ajax等封装库调用),api的做用是跨浏览器(可被手机浏览器或其他应用程序调用,也叫跨终端),wcf的做用是跨语言(可供不同的语言调用,如php/java等后端调用)及业务基础逻辑的定义,其他wcf也可以被浏览器调用,但这种形式的wcf叫wcf restful风格(事实上web api就是在http协议上来代替wcf restful的,wcf restful是使用soap协议)。
然后我这里给你介绍一下handler与web api的区别:
handler其实是对请求-应答过程中的事件进行了定义,在iis的19个事件中定义其process功能然后进行返回,换句话来说,handler会自动注册,然后请求到达时执行相关的handler,最后流程走到process事件中,这个都是handler定义好的(就是你直接使用的一般处理程序),如果你需要定义其他的事件,那么必须自定义handler/mole,你可以看到其实一般处理程序就是继承了一个IHttphanlder的接口原因。而web api则是对所有事件进行处理而衍生的一个开发框架(web api在mvc4中出现,由于其比交好用,在mvc5中驳离,而形成新的轻量级开发架框web api 2.0,所以web api现在还保留着其mvc开发风格)
所以web api非常适应你说的情况。也就是说你将来的网站后台有两部分组成,一部分是aspx页面(或直接html页面/建议使用shtml),本来应该写在aspx.cs文件中的内容,全部省略,而写在前端由javascript/ajax去调用。举一个不恰当的例子——你的服务器按钮(asp:Button/或button runat=server,能触发服务器事件的按钮),本来应该写到相应的后端事件中,而现在则由前端进行了分解,从而实现页面级业务分离,达到了复用的功能。可能这样说不够直白,假定asp:Button OnClick=serverClickHandler,那么本来在aspx页面中应该存在一个serverClickHandler(object sender, EventArgs e)的事件,这个事件就是服务端事件,它会引发页面刷新。现在我们把serviceClickHandler事件设计成一个web api功能,则asp:Button OnClientClick=ajaxHandler,在ajaxHandler中使用ajax或直接使用javascript去调用一个地址(这个地址就是api地址,它可以返回xml/json/jsonp格式的数据,然后由javascript获得的数据直接进行处理。使用httphandler也不过如此,所以使用web api则会更有优势。而且api组装业务时,如果有两个页面需要同样功能时,aspx写在后台时,肯定无法重用另一个页面的中一个事件(其实为了重用,页面还需要按照命令模式进行设计),而分离的handler还api则不存在这样的问题,只是前端ajax调用时调用同一地址而已)。
我们再来看一下,为什么要使用wcf做基础业务逻辑。如果你的web api/handler出现一个问题,几乎所有的handler都需要认证(认证调用者身份,然后处理不同的业务),相把相同的部分提出来(认证调用者身份),这样就形成了两者基础业务逻辑,如果认证模块发生了变化,则基础业务进行修改就是,不会影响调用者的任何代码;但如果认证调用者身份没有复用,那么一个个地修改,这事是每个程序员的恶梦——当然,你可以完全考虑使用一个抽象类,让需要调用的功能继承,但这里我只是说的业务复用,如果真是仅仅的身份验证是没有问题的,但业务中并非简单的业务,业务是可拆分的,拆分后可能会被不同的业务调用,而且没有多少共性,这时涉到的就是业务组装,不可能使用继承的方法完成的。这就是使用wcf做基本业务逻辑处理层的原因之一(其他的是考虑业务有效性、稳定性、吞叶量等)。
后端编程,如果技术团队还行的话,可以考虑使用aop(面向切面编程),因为大多数的情况,一个基础业务可能会涉及到日志记录等等,每个都存在这样的方式时,就考虑使用切面编程(切片编程)的编程风格,对将来的系统更易于维护。

这么说吧,设计一个系统是架构师的事,其实要考虑的内容多了去了,目标也不是仅仅的业务能走通,而是考虑到开发周期,维护成本等等诸多方面。

⑼ 调用WCF服务端方法,方法执行时间过长,怎么处理比较合理

加速算法
多线程!

热点内容
台电安卓平板系统太低怎么办 发布:2025-05-15 05:20:00 浏览:507
安装了zlib编译报错 发布:2025-05-15 05:19:56 浏览:166
二分算法无序 发布:2025-05-15 05:18:22 浏览:28
网易我的世界服务器组件怎么安装 发布:2025-05-15 05:16:58 浏览:311
如何复制密码狗 发布:2025-05-15 05:15:28 浏览:737
c语言报告三 发布:2025-05-15 05:10:37 浏览:844
09压缩饼干 发布:2025-05-15 05:05:58 浏览:279
迭代法编程c 发布:2025-05-15 04:58:01 浏览:815
用什么dns服务器地址快 发布:2025-05-15 04:52:59 浏览:27
手机端so反编译 发布:2025-05-15 04:50:55 浏览:610