Можно ли зарегистрировать исключение «Не удалось выделить буфер управляемой памяти ...» в файле трассировки WCF (.svclog)? - PullRequest
0 голосов
/ 18 февраля 2020

Мое приложение использует службу WCF, размещенную на IIS, где сервер имеет размер оперативной памяти 4 ГБ. Когда я вызываю запрос на обслуживание из моего клиентского приложения, я получаю исключение «Не удалось выделить буфер управляемой памяти размером 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>

Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...