你的位置:首页 > 软件开发 > ASP.net > 十五天精通WCF——第十一天 如何对wcf进行全程监控

十五天精通WCF——第十一天 如何对wcf进行全程监控

发布时间:2015-07-15 01:00:11
说点题外话,我们在玩asp.net的时候,都知道有一个叼毛玩意叫做“生命周期”,我们可以用httpmodule在先于页面的page_load中做一些拦截,这样做的好处有很多,比如记录日志,参数过滤,全局登录验证等等。。。在wcf里面的话也是 ...

十五天精通WCF——第十一天 如何对wcf进行全程监控

  说点题外话,我们在玩get='_blank'>asp.net的时候,都知道有一个叼毛玩意叫做“生命周期”,我们可以用httpmodule在先于页面的page_load中

做一些拦截,这样做的好处有很多,比如记录日志,参数过滤,全局登录验证等等。。。在wcf里面的话也是有类似的功能,第一种就是在

endpoint中加上runtime的behavior,这样的话就可以先于“服务方法”做拦截,第二种方法呢,也就是我们这一篇所说的全程监控,俗称

”诊断功能”。

 

一:诊断

  我也说了,“诊断”这是wcf的一个专业术语,意思也就是监控wcf的所有动向,如果往下说的话,可以分为监控 wcf的message 和 wcf

本身的服务状态信息和端对端的流转消息。

1. 端对端的流转消息

  在玩wcf之前,不知道有多少人熟悉Diagnostics,对的,它就是.net自带的日志类,当然在这个年代,记录日志的组件有很多,比如

log4net,Nlog等等。。。不过话说回来,Diagnostics这个叼毛用起来还比较另类,它由“跟踪源” 和 “**”组成。分别就是TraceSource

来指定跟踪源,用TraceListener来指定跟踪源的**,所以理所当然,TraceSource的所有踪迹都会被TraceListener监听到,下面我们

看看怎么玩。

<??><configuration>  <system.diagnostics>  <sources>   <source name="System.ServiceModel" switchValue="ActivityTracing">    <listeners>     <add name="mylisteners" type="System.Diagnostics. <system.serviceModel>  <behaviors>   <serviceBehaviors>    <behavior>     <serviceMetadata httpGetEnabled="true" />     <serviceDebug includeExceptionDetailInFaults="false" />    </behavior>   </serviceBehaviors>  </behaviors>  <services>   <service name="MyService.HomeService">    <endpoint address="HomeService" binding="wsHttpBinding"     contract="MyService.IHomeService">     <identity>      <dns value="localhost" />     </identity>    </endpoint>    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />    <host>     <baseAddresses>      <add baseAddress="http://192.168.1.107:1920" />     </baseAddresses>    </host>   </service>  </services> </system.serviceModel></configuration>

原标题:十五天精通WCF——第十一天 如何对wcf进行全程监控

关键词:wcf

wcf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。