Пользовательский вход в службу WCF

1
6

У меня есть проект WCF с открытым API. Я хочу регистрировать запросы и ответы с моего сервера. Я настроил файл web.config, чтобы вести журнал с помощью раздела system.diagnostics в конфигурации. Мне удалось начать вести журнал, однако я хотел бы иметь возможность вести журнал более индивидуально. Я поискал и обнаружил, что могу создать новые классы, реализующие IEndpointBehavior, BehaviorExtensionElement, IDispatchMessageInspector, хотя мне не удалось сделать так, чтобы он регистрировал и не останавливал работу (обработку) вызовов API. Я все еще в полном замешательстве, основываясь на документации Microsoft. Может ли кто-нибудь объяснить, как использовать предоставленные расширения классов для создания журнала, который будет регистрировать запросы и ответы определенных контрактов операций (GetRateLandedCost(RateRequest request) и ShipParcel(routingDeliveryRequest request)), которые имеют определенные значения тела (и RateRequest, и RoutingDeliveryRequest имеют поле "AccountNumber" для фильтрации)?

Вот мои текущие конфигурации для базового журнала, которые я уже реализовал:

Я пытался создать классы, которые расширяют журналирование. Я пытался создать классы, которые расширяют IEndpointBehavior, BehaviorExtensionElement, IDispatchMessageInspector, хотя они делали вызовы к API break. Я просмотрел документацию, хотя я все еще не понимаю, как на самом деле это реализовать и какие изменения необходимо внести в конфигурацию; я пытался добавить расширения поведения конечной точки. Я ожидал, что это создаст на сервере файл, состоящий из журналов с определенной конечной точки, в теле которого будет определенное значение.

        <diagnostics wmiProviderEnabled="true">
        <messageLogging
            logEntireMessage="true"
            logMalformedMessages="true"
            logMessagesAtServiceLevel="true"
            logMessagesAtTransportLevel="false"
            maxMessagesToLog="5000"
            maxSizeOfMessageToLog="5000000" />
    </diagnostics>

        <system.diagnostics>
        <sources>
            <source name="System.ServiceModel.MessageLogging">
                <listeners>
                    <add name="messages"
                    type="System.Diagnostics.XmlWriterTraceListener"
                    initializeData="c:\logs\messages.svclog" />
                </listeners>
            </source>
        </sources>
    </system.diagnostics>
Светлана
Вопрос задан21 августа 2024 г.

1 Ответ

2
Дмитрий
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.