
تسجيل النشاط يستخدم لأغراض تصحيح الأخطاء، بالإضافة إلى جمع وتحليل المعلومات المتعلقة بتشغيل التطبيق. تتم كتابة هذه المعلومات إلى ملف يسمى سجل. تحتوي ملفات السجل على معلومات النظام حول تشغيل تطبيق العميل، على سبيل المثال، إجراءات المستخدم أو البرنامج.
في هذه المقالة، سنغطي كيفية إعداد تسجيل نشاط عميل EWS باستخدام C# .NET.
- واجهة برمجة تطبيقات C# .NET للعمل مع خدمات ويب MS Exchange
- تمكين تسجيل النشاط باستخدام ملف App.config
- تمكين تسجيل النشاط باستخدام ملف appsettings.json
- تمكين تسجيل النشاط في كود البرنامج
- مثال على معلومات سجل الملف
واجهة برمجة تطبيقات C# .NET للعمل مع خدمات ويب MS Exchange
لإدارة خدمات ويب MS Exchange، سنستخدم Aspose.Email لـ .NET.
إنها واجهة برمجة تطبيقات قوية تتيح الوصول إلى خدمات مختلفة من خادم MS Exchange بسلاسة. كما أنها توفر العديد من الميزات لتنفيذ تطبيقات عميل البريد الإلكتروني.
يمكنك إما تنزيل DLL الخاصة بالواجهة أو تثبيتها من NuGet باستخدام الأمر التالي.
PM> Install-Package Aspose.Email
تمكين تسجيل النشاط باستخدام ملف App.config
هذا الخيار مناسب للتطبيقات حيث يكون app.config
هو الطريقة المفضلة للاحتفاظ بتكوين التطبيق.
فيما يلي الخطوات لتمكين التسجيل في EWSClient باستخدام C#.
- أولاً، أضف ملف تكوين تطبيق إلى مشروع C#، إذا لم يتم إضافته من قبل.
- ثم، أضف المحتوى التالي إلى ملف التكوين.
<?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>
يمكننا رؤية قسمين للإعدادات:
EWSDiagnosticLog
- يحدد المسار النسبي أو المطلق لملف السجل.EWSDiagnosticLog_UseDate
- يحدد ما إذا كان يجب إضافة تمثيل نصي للتاريخ الحالي إلى اسم ملف السجل.
تمكين تسجيل النشاط باستخدام ملف appsettings.json
هذا الخيار مفضل لتطبيقات .NET Core.
فيما يلي الخطوات لتمكين التسجيل في EWSClient باستخدام C#.
- أولاً، أضف ملف تكوين
appsettings.json
إلى مشروع C#، إذا لم يتم إضافته من قبل. تأكد من أن ملف المشروع يحتوي على الأسطر التالية في قسم ItemGroup:
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
- ثم، أضف المحتوى التالي إلى ملف appsettings.json.
{
"EWSDiagnosticLog": "ews.log",
"EWSDiagnosticLog_UseDate": true
}
يمكننا رؤية خاصتين:
EWSDiagnosticLog
- يحدد المسار النسبي أو المطلق لملف السجل.EWSDiagnosticLog_UseDate
- يحدد ما إذا كان يجب إضافة تمثيل نصي للتاريخ الحالي إلى اسم ملف السجل.
تمكين تسجيل النشاط في كود البرنامج
يمكنك أيضًا تمكين التسجيل على الفور في الكود. ملاحظة: حتى إذا كنت قد قمت بتمكين التسجيل بالفعل باستخدام ملفات التكوين، سيتم تطبيق هذا الخيار.
فيما يلي الخطوات لتمكين التسجيل في EWSClient باستخدام C#.
- أولاً، أنشئ EWSClient.
- ثانياً، قم بتعيين المسار إلى ملف السجل باستخدام خاصية LogFileName.
- أخيرًا، قم بتعيين خاصية UseDateInLogFileName إذا لزم الأمر.
using (var client = EWSClient.GetEWSClient("https://outlook.office365.com/EWS/Exchange.asmx", credentials))
{
client.LogFileName = @"Aspose.Email.EWS.log";
client.UseDateInLogFileName = false;
}
مثال على معلومات سجل الملف
فيما يلي مثال على إدخالات سجل الملف عند تنفيذ طريقة ListMessages. يتم تقديم كل إدخال جديد بواسطة طابع زمني.
يمكن تمييز الإدخالات التالية في ملف السجل:
- رأس ملف السجل. يتضمن إصدار Aspose.Email، الاسم ووقت البدء.
Aspose.Email for .NET [22.10.0.0] EWS Client diagnostic log
Started: 07.11.2022 13:40:16
- طلب SOAP إلى الخادم.
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>
- رؤوس استجابة 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
- استجابة 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>
احصل على ترخيص API مجاني
يمكنك الحصول على ترخيص مؤقت مجاني لاستخدام Aspose.Email لـ .NET بدون قيود التقييم.
الخلاصة
في هذه المقالة، تعلمت كيفية إعداد تسجيل النشاط في عميل EWS باستخدام C#. تتيح لك هذه الميزة مراقبة أفضل لتطبيق العميل الخاص بك. بالإضافة إلى ذلك، يمكنك استكشاف الوثائق لقراءة المزيد حول Aspose.Email لـ .NET. كما يمكنك طرح أسئلتك عبر المنتدى.