none
初学WCF的一些疑问,希望能帮忙看下 RRS feed

  • 问题

  • 1.wcDual模式的时候自动生成的APP.CONFIG文件是要在BINDING中加上clientAddress把
    但是加上了。我如果想启用多个实例他就会报错 说已经有人使用了这个地址。这要怎么解决呢。
    2. WCF应用在WEB 开发什么时候使用呢?什么功能使用呢?
    2009年7月15日 9:57

答案

  • 3. 我是使用的jquery调用wcf。。 是不是就必须要在web.config里面设置了binding呢?
    还有使用mvc没有了scriptManager 怎么直接调用wcf呢?
    问了这么多 都能一一解答太感谢了


    Hi,
       不要客气,不论你使用什么客户端来调用WCF服务,首先你服务要能够运行。一般是IIS托管,和(Asp.net)Web Service部署一样,搜索一下,资料很多。或者其他方式托管服务。要想使得WCF可以正常运行,你当然要配置服务的终结点啦,这个就包括绑定协议。默认使用http协议,和Web服务的调用方式一样。服务能够运行以后,你可以调用了。
       1.你使用Jquery或者别的JS类库都无所谓,关键是能有这样的框架,可以使得WCF服务被JS调用。http://hi.baidu.com/yangczcz/blog/item/1d5fe7be1f49ca0d19d81fbc.html。这个例子里有事先过程,你也可以再搜索别的资料,应该很多。
       2.MVC里,View消费WCF服务,也是一样,目前我了解的使用WCF创建REST服务,供AJAX调用。可能要引用一些类库,或者使用一些辅助的框架。这个资料也比较多。http://hi.baidu.com/woxxf/blog/item/3c5be90e9d9861e136d122bb.html。你可以参考一下。
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    • 已标记为答案 senarukana 2009年7月17日 2:03
    2009年7月16日 16:19
    版主

全部回复

  • Hi,
    1.WCF 双工通信确实配置比较复杂。你需要提供客户端的地址,如果没有提供,WCF会默认生成一个地址。用于会发数据。clientAddress,设置客户端为接收来自服务的响应消息而侦听的基址。如果指定了此地址,则此地址(以及每个通道的 GUID)将用于侦听。如果未指定此值,则将以传输特定的方式生成客户端基址。默认值为
    2.WCF Windows通信基础,是一个用于不同应用之间交互数据的技术,或者是平台。Web的概念太大了,简单的来说,如果是指Web应用程序,有数据交换的需要,就可以使用WCF,你早期的能使用Web Service进行数据交互的系统,现在都可以使用WCF来封装和调用。
      WCF只是提供了一种通信方式,具体应用于什么架构的应用取决于实际情况了。如果你的系统有分层的需要,比如要暴露一定的服务出来,共别的系统调用,你需要把封装好的业务逻辑暴露为WCF操作即可,这时可以考虑WCF。
      你的应用有分布式交互数据的需要的时候可以考虑,例如SCSF框架,基于客户端和服务器的应用程序里比较多见。所有客户端可以都使用一个WCF服务。
    WCF也是微软SOA战略重要的组成部分。它可以实现如多种平台数据的交互,真正做到跨平台和语言。除了对微软已有技术的和平台的兼容意外,最重要的它支持Web Service的行业标准。良好的伸缩性和兼容性是其优势。
      
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月15日 10:23
    版主
  • 1.那要怎么解决呢?如果不提供CLIENT ADDRESS就会报错。。
    我如何为打开多个客户端提供不同的地址呢?
    2.假设我现在做了b/s架构的商场进销存系统 或者 博客系统  
    我要如何利用WCF技术来改进项目呢。我以前用WEBSERVICE只是用来一些独立的简单功能比如自动填充这种。
    还有假设我是MVC模式,使用WCF是应该在CONTROLLER控制之前,还是之中呢?
    再问1个。。
    3.操作契约的Action属性是什么用途呢?
    谢谢了

    2009年7月15日 11:32
  • 1.那要怎么解决呢?如果不提供CLIENT ADDRESS就会报错。。
    我如何为打开多个客户端提供不同的地址呢?
    2.假设我现在做了b/s架构的商场进销存系统 或者 博客系统  
    我要如何利用WCF技术来改进项目呢。我以前用WEBSERVICE只是用来一些独立的简单功能比如自动填充这种。
    还有假设我是MVC模式,使用WCF是应该在CONTROLLER控制之前,还是之中呢?
    再问1个。。
    3.操作契约的Action属性是什么用途呢?
    谢谢了


    Hi,
       1.这个你在进行客户单开发的时候在指定客户端地址。方法也有2种:
     a.客户端配置文件里之间配置,客户端的回调地址clientBaseAddress="http://localhost:9001";
     b.客户端代理的属性赋值:clientBaseAddress=new URI("http://localhost:9001").默认的话,WCF客户端指定的回调端口80,一般大家都会自己设置一下。你也可以编写代码查找一个可用端口给客户单代理设置一下。
    2.在MVC或者MVP模式里,View都是要显示结果给用户的,它的数据哪里来?显然你可以把它请求的数据或者服务包装为WCF服务接口,MVC中View可以直接向model获取数据,你可以把WCF放在V--WCF--M之间。或者使用RestWCF,支持View的AJAX 调用。WCF是层的一种服务的包装,这个可以包装你的业务逻辑接口。当然也可以是别的操作。
    3.WCF OperationContract属性提供了对请求和返回消息地址的配置。
    1).Action属性,设置WS-Addressing格式的地址,这个地址是来指定请求消息的目的地.
    2).ReplyAction属性设置WS-Addressing格式的地址,这个地址是来指定返回消息的目的地.
    备注:这里其实和Web 服务类似。WS-Addressing协议是行业标准,来识别消息的来源和目的地,使用WS- Security对到目的地的来源进行身份验证。
    问题3是Jowo在我WCF分布式开发步步为赢(5)服务契约与操作重载 提过的问题,你可以看看~
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月15日 13:43
    版主
  • 2. 您说把他放在V-M之间,我不太懂。能解释一下吗?
    当到达View时,数据已经给定也就是Model已经给定,那我如何使用WCF呢?
    是在传达到VIEW之前的HTTPModule,HTTPHandler那里调用WCF服务,根据不同的客户,暴露出不同的model吗?
    但是这和直接在Controller根据不同客户,返回不同model有什么区别?或者有什么好处呢?
    谢谢了

    2009年7月16日 2:20
  • 2. 您说把他放在V-M之间,我不太懂。能解释一下吗?
    当到达View时,数据已经给定也就是Model已经给定,那我如何使用WCF呢?
    是在传达到VIEW之前的HTTPModule,HTTPHandler那里调用WCF服务,根据不同的客户,暴露出不同的model吗?
    但是这和直接在Controller根据不同客户,返回不同model有什么区别?或者有什么好处呢?
    谢谢了


    Hi,
       举个简单的例子,
       你页面需要做个无刷新的数据查询效果。一般是使用ajax,因为框架不同ajax调用业务逻辑的接口方式也不一样。你可以view---web Service--model。也可以你可以view---rest WCF Service--model。这个就是简单的WCF服务的应用。
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月16日 4:37
    版主
  • 十分感谢!
    那除了这种ajax调用还有什么别的应用点吗?我始终对于wcf在web B/S架构的应用不太清楚,谢谢了!
    采用REST WCF 似乎和MVC中URLROUTING规则很类似 请问有什么区别呢?
    我试着WEBSERVICE方式调用了WCF服务但是。。页面上那个功能没反应。。
    然后打开源地址 页面显示 不允许此方法,是哪里有问题。。谢谢了

    2009年7月16日 5:50
  • 十分感谢!
    那除了这种ajax调用还有什么别的应用点吗?我始终对于wcf在web B/S架构的应用不太清楚,谢谢了!
    采用REST WCF 似乎和MVC中URLROUTING规则很类似 请问有什么区别呢?
    我试着WEBSERVICE方式调用了WCF服务但是。。页面上那个功能没反应。。
    然后打开源地址 页面显示 不允许此方法,是哪里有问题。。谢谢了


    Hi,
       我个人理解意见,仅供参考~
    1. AJAx调用WCF服务,不一定非要使用Rest WCF,直接调用也可以,但是方式和调用Web Service的方式差不多,我对比了一下代码例子。http://hi.baidu.com/yangczcz/blog/item/1d5fe7be1f49ca0d19d81fbc.html
       B/S架构的系统里使用WCF的目前来说也有,以后会多起来吧,一般的网站开发不会使用WCF,因为这个是基于.NET平台的通讯框架,而企业管理系统开发的过程使用的相对较多,因为你有跨系统数据交互的需求。你可以看一下WCSF框架,这个是用来开发企业应用的软件工厂,很不错。
      简单的一个例子就是,你可以把系统的业务逻辑层,使用WCF进行包装,然后供表示层和其他系统调用。你也可以使用WCF与其他平台进行通信。
    以前系统开发力能使用Web Service的地方,这里都可以用WCF来代替,而且WCF具有更灵活的部署选择。
    2.Rest其实是一种风格.REST WCF 也准寻了Restl良好的设计风格。MVC里的URL routing是处理用户的请求,它把请求映射到正确的Controller和Action执行处理代码,我们可以配置一些URL的映射,使用户可以按你的规则来访问系统.Rest里也提到了良好的URI.个人感觉不是一个范畴里的概念。
    3.你使用Web服务方式调用WCF服务?就是直接添加WCF服务引用为Web服务是吧,你可以断点调试一下,看看调用是否成功。如果你的WCF是自托管,你还要启动服务,IIS托管,确保服务端口打开~。
     


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月16日 11:17
    版主
  • 3. 我是使用的jquery调用wcf。。 是不是就必须要在web.config里面设置了binding呢?
    还有使用mvc没有了scriptManager 怎么直接调用wcf呢?
    问了这么多 都能一一解答太感谢了

    2009年7月16日 14:58
  • 3. 我是使用的jquery调用wcf。。 是不是就必须要在web.config里面设置了binding呢?
    还有使用mvc没有了scriptManager 怎么直接调用wcf呢?
    问了这么多 都能一一解答太感谢了


    Hi,
       不要客气,不论你使用什么客户端来调用WCF服务,首先你服务要能够运行。一般是IIS托管,和(Asp.net)Web Service部署一样,搜索一下,资料很多。或者其他方式托管服务。要想使得WCF可以正常运行,你当然要配置服务的终结点啦,这个就包括绑定协议。默认使用http协议,和Web服务的调用方式一样。服务能够运行以后,你可以调用了。
       1.你使用Jquery或者别的JS类库都无所谓,关键是能有这样的框架,可以使得WCF服务被JS调用。http://hi.baidu.com/yangczcz/blog/item/1d5fe7be1f49ca0d19d81fbc.html。这个例子里有事先过程,你也可以再搜索别的资料,应该很多。
       2.MVC里,View消费WCF服务,也是一样,目前我了解的使用WCF创建REST服务,供AJAX调用。可能要引用一些类库,或者使用一些辅助的框架。这个资料也比较多。http://hi.baidu.com/woxxf/blog/item/3c5be90e9d9861e136d122bb.html。你可以参考一下。
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    • 已标记为答案 senarukana 2009年7月17日 2:03
    2009年7月16日 16:19
    版主