(WCF初体验)WCF服务器诊断

简介:       WCF服务器搭建好之后,不管是客户端访问还是本地调试,出个问题抛出来的原因往往在我们看来都是不知所以然的,更可能是跑出来的问题和真正的问题差了很远,比如“通信对象 System.ServiceModel.ServiceHost 无法用于通信,因为其处于“出错”状态。

      WCF服务器搭建好之后,不管是客户端访问还是本地调试,出个问题抛出来的原因往往在我们看来都是不知所以然的,更可能是跑出来的问题和真正的问题差了很远,比如“通信对象 System.ServiceModel.ServiceHost 无法用于通信,因为其处于“出错”状态。”这种错误就会有各种各样的原因所以这时候就必须用到WCF服务器的诊断功能了。

     而要实现服务器的诊断功能,我们一般就是用服务器跟踪器来生成日志文件,然后查看日志文件来根据我们调用服务时,服务器所出现的问题。 要开启这项功能需要配置WCF服务器,如下面代码所示,主要包括诊断的定义和开启诊断。

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:12px;"><system.diagnostics>
        <sources>
            <source name="System.ServiceModel.MessageLogging" switchValue="Warning,ActivityTracing">
                <listeners>
                    <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                        <filter type="" />
                    </add>
                    <add name="ServiceModelMessageLoggingListener">
                        <filter type="" />
                    </add>
                </listeners>
            </source>
            <source propagateActivity="true" name="System.ServiceModel" switchValue="Warning,ActivityTracing">
                <listeners>
                    <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                        <filter type="" />
                    </add>
                    <add name="ServiceModelTraceListener">
                        <filter type="" />
                    </add>
                </listeners>
            </source>
        </sources>
        <sharedListeners>
            <add initializeData="D:\WCFLog\web_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
                <filter type="" />
            </add>
            <add initializeData="D:\WCFLog\web_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
                <filter type="" />
            </add>
        </sharedListeners>
        <trace autoflush="false" />
    </system.diagnostics></span></span>
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:12px;"> <diagnostics>
      <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
        logMessagesAtTransportLevel="true" />
    </diagnostics></span></span>

 对于初学者我建议的是用WCF编辑器来自己配置而不是直接复制配置文件的代码。右键你的config文件 选择“编辑WCF配置”


如图,把消息日志和跟踪都选择启动



然后就是配置侦听器的InitData,也是就日志文件保存的地方。(这里注意一下,如果你通过直接改配置来修改这个地址,请保证地址上的文件夹要存在),把两个侦听器的InitData都配置好。



最后保存在启动服务,当访问服务的时候就会在你指定的位置生成web_messages.svclog 和web_tracelog.svclog两个文件,用TraceView打开web_tracelog.svclog,详细列出了你所有访问的打开,操作和结束。当然会有高亮的颜色显示警告和错误,点击这条记录会在右边显示详细信息和提示信息。这样就可以看到导致异常的真正原因。



注: 当用WCF编辑器配置诊断的时候,可能他会生成如下的代码,请将中文的警告改成Warning。

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:12px;"> <sources>
            <source name="System.ServiceModel.MessageLogging" switchValue="警告,ActivityTracing"></span></span>


目录
相关文章
|
16天前
|
弹性计算 Linux 网络安全
阿里云ECS健康诊断产品详解
介绍阿里云ECS健康诊断产品详情和使用案例,包括各个产品概念、控制、OpenAPI、SDK等。
|
2月前
|
弹性计算 人工智能 运维
阿里ECS&OS Copilot智能助手初体验
探索阿里云新推出的OS Copilot,与通义千问对比,体验其在Linux运维中的应用。创建ECS实例、重置密码、设置RAM Access Key过程略显复杂。OS Copilot安装简便,能准确解答问题,提供Shell脚本,对运维工作帮助大,评分9分。作为运维新手,认为文档对新人不友好,期待正式版并愿推荐给同行。功能上,突出知识问答和命令执行辅助,优于其他产品,期望优化连续问答和文档处理能力,与ECS整合以增强系统错误排查。
阿里ECS&OS Copilot智能助手初体验
|
4月前
|
监控 测试技术
【亮剑】理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤
【4月更文挑战第30天】本文阐述了理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤:1) 使用监控工具分析CPU使用率和系统负载;2) 深入排查运行队列、进程占用、系统调用和硬件状态;3) 根据排查结果进行代码优化、调整进程优先级或限制CPU使用率,必要时升级硬件。建议建立监控体系,定期性能测试,并持续优化以保证服务器高效运行。
159 1
|
4月前
|
监控 负载均衡 网络协议
DNS服务器的搭建之初体验
通过这些步骤,你可以在初次搭建DNS服务器时获得基本的体验,了解如何为域名提供解析服务,促进网络的正常运行。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
84 7
|
4月前
|
存储 设计模式 监控
如何诊断处理生产环境服务器变慢
在当今的高科技环境下,生产环境服务器的性能问题可能是一个复杂且棘手的问题。当服务器变慢时,可能会对企业的运营产生重大影响,包括客户满意度下降,工作效率降低,甚至可能导致整个系统崩溃。为了解决这些问题,我们需要深入了解生产环境服务器变慢的原因,并掌握有效的诊断和处理方法。本文将详细介绍如何诊断和处理生产环境服务器变慢的问题。通过深入探讨服务器的硬件和软件配置,网络环境,以及可能影响服务器性能的各种因素,我们将提供一系列实用的诊断和解决方案。
93 1
|
弹性计算 关系型数据库 MySQL
基于ECS和云数据库RDS MySQL Serverless快速搭建个人博客初体验
通过安装Apache+PHP+WordPress网站环境,并结合RDS MySQL版数据库实例,快速搭建自己的云上博客。
266 2
|
Java Linux
第二季:9.生产环境服务器变慢,诊断思路和性能评估谈谈?【Java面试题】
第二季:9.生产环境服务器变慢,诊断思路和性能评估谈谈?【Java面试题】
84 0
|
缓存 运维 监控
如何通过一系列步骤来诊断和解决服务器CPU负载过高问题?
如何通过一系列步骤来诊断和解决服务器CPU负载过高问题?
767 0
|
机器学习/深度学习 弹性计算 Linux
大四计算机学生云服务器ESC初体验
本文是一位计算机科学与技术专业的大学生分享自己参加阿里云举办的高校学生在家实践活动的经历。该活动为学生提供了免费的算力平台,使学生能够更好地使用机器学习和数据处理工具。作者通过使用阿里云的ECS云服务器进行数据处理和机器学习模型的训练,发现其效率比个人电脑更高,对自己的研究和项目提供了很大的帮助。通过参加活动,作者深入了解了云服务器和机器学习的应用,并意识到其便利性和高效性。此外,作者也认为阿里云为高校学生提供免费算力服务的举措非常有帮助,可以让学生更好地掌握最新的技术和发展趋势,为未来的发展奠定更加坚实的基础。