1.开通WCF调试服务:

须在服务端的行为中作如下配置:includeExceptionDetailInFaults="true" 代码如下:

<behaviors>

<serviceBehaviors>

<behavior name="MyBehavior">

<serviceDebug  includeExceptionDetailInFaults="true" ></serviceDebug>

</behavior>

</serviceBehaviors>

</behaviors>

2.关于WCF客户端信道异常的处理方法,须在catch中新建,且体代码如下:

ChannelFactory<IContract> factory=new ChannelFactory<IContract>("myclient");

IContract proxy=factory.CreateChannel();

try

{

proxy.GoFunction();

}

catch(Exception ex)

{

if(proxy.InnerChannel.State == CommunicationState.Faulted)

{

factory=new ChannelFactory<IContract>("myclient");

// proxy=factory.CreateChannel();

}

}

3.当WCf服务出现TimeOutException或CommunicationException时,当前信道壮态变成Faulted,表示信道出现错误,

将使信道不能用于后续通信,即使调用close方法关闭也不行,此时客户端须调用Abort方法强制中断该信道。

using(ChannelFactory<IContract>  factory=new ChannelFactory<IContract>("MyClient"))

{

IContract  proxy=factory.CreateChannle();

try

{

proxy.GoFunction();

(proxy as ICommunicationObject).Close();  // 这里是关闭信道

}

catch(CommunicationException ex)

{

(proxy as ICommunicationObject).Abort();    // 强制杀死信道

}

catch(TimeoutException ex)

{

(proxy as ICommunicationObject).Abort();    // 强行释放信道

}

catch(Exception ex)

{

LogError.Message(ex.Message);

}

}

WCF基本知识的更多相关文章

  1. WCF入门教程:WCF基础知识问与答(转)

    学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太 ...

  2. WCF基础知识

    根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的安全.可信赖.事务性 ...

  3. WCF基础教程之开篇:创建、测试和调用WCF

    一转眼,又半个月没有更新博客了.说实话,最近确实是有点忙.不过即使再忙忙,也要抽空来学习一些东西.最近用WCF比较多,就来跟大家分享一下关于WCF的知识吧!为了让大家都能看懂,照顾一些没有学过WCF的 ...

  4. [老老实实学WCF] 第三篇 在IIS中寄存服务

    老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...

  5. 学习之路十四:客户端调用WCF服务的几种方法小议

    最近项目中接触了一点WCF的知识,也就是怎么调用WCF服务,上网查了一些资料,很快就搞出来,可是不符合头的要求,主要有以下几个方面: ①WCF的地址会变动,地址虽变,但是里面的逻辑不变! ②不要引用W ...

  6. (转) [老老实实学WCF] 第三篇 在IIS中寄存服务

    第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...

  7. WCF小实例以及三种宿主

    WCF小实例以及三种宿主 最近一直在学习WCF相关知识,下面将通过一个小实例对所学的知识进行简单的回顾:本实例是一个简单三层操作数据库,并且也简单实现的三种宿主(控制台宿主,IIS宿主以及Window ...

  8. WCF分布式服务1-核心概念

    参考msdn library for WCF Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架. 借助 WCF,可以将数据作为异步消息从 ...

  9. 老老实实学WCF

    老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...

随机推荐

  1. std::stringstream(1)

    在编写应用程序时,我们经常要使用到字符串.C++标准库中的<string>和<sstream>为我们操作字符串提供了很多的方便,例如:对象封装.安全和自动的类型转换.直接拼接. ...

  2. Android 全局异常处理(一)

    from:http://onewayonelife.iteye.com/blog/1147533 from:http://blog.csdn.net/liuhe688/article/details/ ...

  3. Tomcat Server启动报错:Multiple Contexts have a path of "/east".

    原因是 conf/server.xml 文件中多了一个<Context></Context>标签,路径有重复,把他删掉就好了.

  4. poj3585 Accumulation Degree【树形DP】【最大流】

    Accumulation Degree Time Limit: 5000MS   Memory Limit: 65536K Total Submissions:3151   Accepted: 783 ...

  5. Ubuntu16.4下RStudio1.1.447 中文输入问题的解决方案

    Ubuntu16.4下RStudio1.1.447 中文输入问题的解决方案参照:https://blog.csdn.net/matteoshenl/article/details/78603528 R ...

  6. Nagle's Algorithm and TCP_NODELAY

    w非全尺寸分组的发送条件 HTTP The Definitive Guide TCP has a data stream interface that permits applications to ...

  7. php和jsCOOKIE实现前端交互

    w如何精简? <script> document.cookie = 'wjs_cookie=' + 'amz_reviews'; function w(id) { document.coo ...

  8. 设计模式之——Template模板模式

    Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的 ...

  9. python学习笔记(四)— 补充

    函数return多个值 函数如果有多个return值,那么会生成一个元组里面 def hello(a,b,c,d): return a,b,c,d res =hello('aa','cc','dd', ...

  10. 【opencv】相机标定程序内存溢出

    运行相机内参标定程序出现内存溢出的错误 opencv的alloc.cpp报cv::OutOfMemoryError 因为同时开了多个线程,每个线程标定一台相机,每个线程都会imread读入所有标定图片 ...