专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WCF

小弟我的WCF摸爬滚打之路(2)

发布时间:2011-06-23 13:50:34 文章来源:www.iduyao.cn 采编人员:星星草
我的WCF摸爬滚打之路(2)

     昨天抽空写了一个wcf的创建和宿主程序的创建文章,下面也有很多园友给了评论,在此谢谢大家给了我继续记录我的摸爬滚打之路信心……抱拳!

    上次的文章《我的WCF摸爬滚打之路(1)》中写到,在测试wcf例子的时候遇到很多稀奇古怪的异常,准备列个专题写的。无奈学习不深,实在不敢潦草为之。今天就随便说说吧!说的不到位的地方,还望有缘人海涵。多多指点,共同学习,共同进步。

     一般在测试这些技术的时候,你遇到的问题,在网上搜搜大多也能解决问题。因为我也是站在别人的肩膀上学习的。其实你别把wcf这种通信的技术想多有多么复杂(我仅仅只是说一些一般应用中哈,当然玩深入的话,任何一个技术都感觉深不可测。勿喷)。我理解的wcf就是把实现接口的服务暴露出来供我使用而已。附上一个简单的理解图:

 

一、简单讲讲客户端的的配置文件吧,客户端的配置文件当你添加服务引用后会自动生成config文件中的内容。

 1  <system.serviceModel>
 2         <bindings>
 3             <netTcpBinding>
 4                 <binding name="NetTcpBinding_IService1">
 5                     <security mode="None" />
 6                 </binding>
 7             </netTcpBinding>
 8         </bindings>
 9         <client>
10             <endpoint address="net.tcp://localhost:13141/Service1" binding="netTcpBinding"
11                 bindingConfiguration="NetTcpBinding_IService1" contract="ServiceReference1.IService1"
12                 name="NetTcpBinding_IService1" />
13         </client>
14     </system.serviceModel>
View Code

<bindings>

//这个节点就是你wcf的绑定方式

//security安全模式

</bindings>
<client>

//wcf访问地址(address,wcf的端口号,ip,和你的服务(实现接口的那个类))

//wcf的契约(contract,就是你的添加服务引用后的Reference.cs文件中有个configurationNme属性)

</client>

二、wcf宿主程序在服务器上运行的注意事项

    2.1我的测试环境是windowsServer2012 R2

    2.2我的宿主程序是控制台程序,当我直接运行编译好的exe文件时,出现下列错误。大致意思是说当前用户没有权限运行。右键以管理员身份运行正常。

2.3有的网络环境可能需要让管理员跟你开放端口,不然的话是无法访问你的wcf服务的

2.4宿主程序运行正常,客户端是否就能正常连接呢?试试看。会提示你无法找到服务,这有可能是你的服务器防火墙起了作用,此时你要的做的是在防火墙中添加入站规则,将管理员给你开放的端口添加进去。送佛送到西直接上图如何添加入站规则吧。

  1.进入控制面板,找到windows防火墙

  

2.进入高级设置

3.选择入站规则,点击new rule

4.选择port,点击next

 5.选择 Specific local ports,输入你的端口(wcf的端口)

6.选择允许链接

7.全部选中规则应用时间

 9.便于管理输入规则名称。例如:InWcfRule

 点击finish即可,经过测试访问没问题了。

另外注意的是服务端和客户端的配置中的安全模式都置为None

 【转载注明出处!谢谢】

   

 

 

2楼气质优雅的猪
客户端每隔1分钟向服务器注册一次双工,直到服务器出现#2提示后,客户端出现异常:服务器“net.tcp://.../xx.svc”发回错误,指示其太忙无法处理请求,请稍后重试。
Re: stonewl
@气质优雅的猪,那你这样子试试看,using(ServeiceHost host=new ServiceHost(Type serviceType,banseaddress)),{,//Todo……
1楼气质优雅的猪
在双工通信中,出现发生了未经处理的异常,已终止进程。 Application ID: /LM/W3SVC/1/ROOT Process ID: 2864 Exception: System.Runtime.CallbackException Message: 用户回调引发异常。请检查异常堆栈和内部异常,以确定失败的回调。 请问楼主是怎么处理。
Re: stonewl
@气质优雅的猪,你这么说我怎么知道你的是啥情况呢?这是你客户端给你的提示吗?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: