
L’enregistrement est utilisé pour le débogage, ainsi que pour collecter et analyser des informations de fonctionnement sur l’application. Ces informations sont écrites dans un fichier appelé journal. Les fichiers journaux contiennent des informations système sur le fonctionnement de l’application cliente, par exemple, les actions des utilisateurs ou des programmes.
Dans cet article, nous allons aborder comment configurer l’enregistrement des activités du client EWS en utilisant C# .NET.
- API C# .NET pour travailler avec les services Web Exchange de MS
- Activer l’enregistrement des activités à l’aide du fichier App.config
- Activer l’enregistrement des activités à l’aide du fichier appsettings.json
- Activer l’enregistrement des activités dans le code du programme
- Un exemple d’informations sur un fichier journal
API C# .NET pour travailler avec les services Web Exchange de MS
Pour gérer les services Web Exchange de MS, nous allons utiliser Aspose.Email pour .NET.
C’est une API puissante qui permet d’accéder à divers services du serveur Exchange de MS sans aucun effort. De plus, elle offre de nombreuses fonctionnalités pour implémenter des applications clientes de messagerie.
Vous pouvez soit télécharger le DLL de l’API, soit l’installer depuis NuGet en utilisant la commande suivante.
PM> Install-Package Aspose.Email
Activer l’enregistrement des activités à l’aide du fichier App.config
Cette option est adaptée aux applications où app.config
est la manière préférée de conserver la configuration de l’application.
Voici les étapes pour activer l’enregistrement dans EWSClient en C#.
- Tout d’abord, ajoutez un fichier de configuration d’application à un projet C#, s’il n’a pas été ajouté auparavant.
- Ensuite, ajoutez le contenu suivant au fichier de configuration.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Aspose.Email.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Aspose.Email.Properties.Settings>
<setting name="EWSDiagnosticLog" serializeAs="String">
<value>..\..\..\Log\Aspose.Email.EWS.log</value>
</setting>
<setting name="EWSDiagnosticLog_UseDate" serializeAs="String">
<value>False</value>
</setting>
</Aspose.Email.Properties.Settings>
</applicationSettings>
</configuration>
Nous pouvons voir deux sections de paramètres :
EWSDiagnosticLog
- Spécifie le chemin relatif ou absolu vers le fichier journal.EWSDiagnosticLog_UseDate
- Spécifie s’il faut ajouter une représentation sous forme de chaîne de la date actuelle au nom du fichier journal.
Activer l’enregistrement des activités à l’aide du fichier appsettings.json
Cette option est préférée pour les applications .NET Core.
Voici les étapes pour activer l’enregistrement dans EWSClient en C#.
- Tout d’abord, ajoutez un fichier de configuration
appsettings.json
à un projet C#, s’il n’a pas été ajouté auparavant. Assurez-vous que le fichier de projet contient les lignes suivantes dans la section ItemGroup :
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
- Ensuite, ajoutez le contenu suivant au fichier appsettings.json.
{
"EWSDiagnosticLog": "ews.log",
"EWSDiagnosticLog_UseDate": true
}
Nous pouvons voir deux propriétés :
EWSDiagnosticLog
- Spécifie le chemin relatif ou absolu vers le fichier journal.EWSDiagnosticLog_UseDate
- Spécifie s’il faut ajouter une représentation sous forme de chaîne de la date actuelle au nom du fichier journal.
Activer l’enregistrement des activités dans le code du programme
Vous pouvez également activer l’enregistrement immédiatement dans le code. Remarque : même si vous avez déjà activé l’enregistrement à l’aide de fichiers de configuration, cette option sera appliquée.
Voici les étapes pour activer l’enregistrement dans EWSClient en C#.
- Tout d’abord, créez un EWSClient.
- Deuxièmement, définissez le chemin vers le fichier journal à l’aide de la propriété LogFileName.
- Enfin, définissez la propriété UseDateInLogFileName si nécessaire.
using (var client = EWSClient.GetEWSClient("https://outlook.office365.com/EWS/Exchange.asmx", credentials))
{
client.LogFileName = @"Aspose.Email.EWS.log";
client.UseDateInLogFileName = false;
}
Un exemple d’informations sur un fichier journal
Voici un exemple d’entrées de fichier journal lorsque la méthode ListMessages est exécutée. Chaque nouvelle entrée est précédée d’un horodatage.
Les entrées suivantes peuvent être distinguées dans le fichier journal :
- En-tête du fichier journal. Inclut la version d’Aspose.Email, le nom et l’heure de début.
Aspose.Email for .NET [22.10.0.0] journal de diagnostic du client EWS
Démarré : 07.11.2022 13:40:16
- Requête SOAP au serveur.
07.11.2022 13:40:16 <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<ConnectingSID>
<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
</ConnectingSID>
</ExchangeImpersonation>
<RequestServerVersion xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013" />
</soap:Header>
<soap:Body>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" Traversal="Shallow">
<ItemShape>
<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
</ItemShape>
<IndexedPageItemView MaxEntriesReturned="2147483647" Offset="0" BasePoint="Beginning" />
<ParentFolderIds>
<DistinguishedFolderId xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Id="inbox" />
</ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>
- En-têtes de réponse HTTP.
07.11.2022 13:40:18 Cache-Control: private
Transfer-Encoding: chunked
Server: Microsoft-IIS/10.0
request-id: 5c777b61-e3d9-c262-fbb0-6f071d9ff68a
Alt-Svc: h3=":443", h3-29=":443"
X-CalculatedFETarget: CH0PR03CU015.internal.outlook.com, BL0PR02CU002.internal.outlook.com
X-BackEndHttpStatus: 200, 200, 200
Set-Cookie: exchangecookie=bf07039c0ee942438170c2958ca2d330; expires=Tue, 07-Nov-2023 10:40:17 GMT; path=/; secure; HttpOnly
X-CalculatedBETarget: BLAPR10MB4915.namprd10.PROD.OUTLOOK.COM
X-RUM-Validated: 1
x-ms-appId: 3fe84e63-c57b-48eb-ab41-879415751cfd
Restrict-Access-Confirm: 1
x-EwsHandler: FindItem
X-AspNet-Version: 4.0.30319
X-BeSku: WCS6
X-DiagInfo: BLAPR10MB4915
X-BEServer: BLAPR10MB4915
X-Proxy-RoutingCorrectness: 1
X-Proxy-BackendServerStatus: 200
X-FEProxyInfo: AS9PR06CA0693.EURPRD06.PROD.OUTLOOK.COM
X-FEEFZInfo: DHR
X-FEServer: BL0PR02CA0063, CH0PR03CA0449, AS9PR06CA0693
X-FirstHopCafeEFZ: DHR
X-Powered-By: ASP.NET
Date: Mon, 07 Nov 2022 10:40:17 GMT
Content-Type: text/xml; charset=utf-8
- Réponse du serveur SOAP.
07.11.2022 13:40:18 <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<ConnectingSID>
<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
</ConnectingSID>
</ExchangeImpersonation>
<RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
<AdditionalProperties xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:DateTimeCreated" />
<FieldURI FieldURI="item:DateTimeReceived" /><FieldURI FieldURI="item:DateTimeSent" />
<FieldURI FieldURI="item:IsDraft" /><FieldURI FieldURI="item:IsFromMe" />
<FieldURI FieldURI="item:HasAttachments" /><FieldURI FieldURI="item:IsUnmodified" />
<FieldURI FieldURI="item:ItemClass" /><FieldURI FieldURI="item:IsSubmitted" />
<FieldURI FieldURI="item:IsResend" /><FieldURI FieldURI="item:DisplayCc" /><FieldURI FieldURI="item:DisplayTo" />
<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:LastModifiedTime" />
<FieldURI FieldURI="item:Size" /><FieldURI FieldURI="item:Subject" />
<FieldURI FieldURI="item:InternetMessageHeaders" /><FieldURI FieldURI="message:IsRead" />
<FieldURI FieldURI="message:InternetMessageId" /><FieldURI FieldURI="message:Sender" />
<FieldURI FieldURI="message:CcRecipients" /><FieldURI FieldURI="message:ToRecipients" />
<FieldURI FieldURI="message:BccRecipients" /><FieldURI FieldURI="message:From" />
</AdditionalProperties>
</ItemShape>
<ItemIds>
<ItemId
Id="AAMkAGJhZjYzY2I5LTdjYWMtNGFmMC05ODI1LTA5MTAzYTgwZTc4OQBGAAAAAABdN1MC60QcSpWwPYUTPhL2BwATlR+p0q0wT6WD0+d4WJhWAAAAAAEMAAATlR+p0q0wT6WD0+d4WJhWAACp2kv8AAA="
xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</ItemIds>
</GetItem>
</soap:Body>
</soap:Envelope>
Obtenez une licence API gratuite
Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Email pour .NET sans limitations d’évaluation.
Conclusion
Dans cet article, vous avez appris à configurer l’enregistrement des activités dans le client EWS en utilisant C#. Cette fonctionnalité vous permet de mieux surveiller votre application cliente. De plus, vous pouvez explorer la documentation pour en savoir plus sur Aspose.Email pour .NET. De plus, vous pouvez poser vos questions via notre forum.