c# - 是否可以在 WCF 跟踪文件 (.svclog) 中记录异常“无法分配...的托管内存缓冲区”?
问题描述
我的应用程序正在使用托管在 IIS 上的 WCF 服务,其中服务器计算机的 RAM 大小为 4GB。当我从客户端应用程序调用服务请求时,我收到异常“无法分配 134217728 字节的托管内存缓冲区。可用内存量可能很低”。虽然服务中的 try-catch 块没有捕获异常,但我在客户端应用程序中得到了异常。因此,我启用了 WCF 跟踪并验证了此文本的 .svclog 文件。似乎这个异常也没有记录在跟踪文件中。
是否可以记录此异常?如果是这样,是否可以通过跟踪文件来做到这一点,我应该如何配置我的 WCF 来启用它?
请在下面找到我用来在 WCF 中启用跟踪的配置文件片段。
<system.diagnostics>
<sources>
<source propagateActivity="false" name="System.ServiceModel"
switchValue="Information, Critical, Error, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Information, Critical, Error, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\Temp\logs\Traces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true">
<listeners>
<add initializeData="C:\Temp\logs\Traces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true"
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>
</system.serviceModel>
任何帮助深表感谢。
解决方案
推荐阅读
- c - 在 C 中定义具有可变长度向量的结构
- flutter - 为什么android studio没有将flutter文件夹作为项目打开
- java - 基于值的 JTable 行过滤具有 '()' As String
- django - 使用 Docker Compose 声明名称/变量
- docker - AIRFLOW_SCHEDULER_RUN_DURATION 设置并且调度程序在关闭时不会重新启动
- database - 我应该如何让我的数据库不断获取
- javascript - 将文本直接复制到asp.net中的剪贴板
- python - 如何从请求中删除不必要的标头?
- javascript - 按实现类型从类中的实现列表中获取对象的函数。(打字稿泛型)
- javascript - WebRTC - 通过替换空轨道添加轨道时避免重新协商