通讯断开
项目的一个服务在跑一个数据越来越多的服务时,通讯老是会断开。
这个问题是因为数据量大了超过了wcf的默认设置,需要更改相应app.config的wcf配置。
wcf - The maximum message size quota for incoming messages (65536) has been exceeded - Stack Overflow
c# - WCF: The socket connection was aborted - Stack Overflow
- 注意客户端和服务端都要设置(可能因为我的服务有回调)。
- 注意有些配置是相关的,只改某一个是没用的。
wcf调试信息记录
wcf可以将内部信息日志保存,以便诊断问题。
开启的方法是在App.config中增加相应的配置,相对应的微软官方文档如下:
(Configuring Tracing - WCF | Microsoft Docs)
Service Trace Viewer Tool (SvcTraceViewer.exe) - WCF | Microsoft Docs
贴一下我的设置:
<configuration>
<!-- 其他配置 -->
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "C:\TracesClient.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
注意:
- 文件路径必须存在,不会自动创建。
- 记录的信息还是不够全面,如果抓不到想要的信息还可以用vs调试并关闭仅我的代码选项。
未验证
搜到的一个问题,没有验证,感觉以后可能会用的上,记录一下:
WCF实现长连接 - 云+社区 - 腾讯云 (tencent.com)