การบันทึก ใช้สำหรับการดีบัก เช่นเดียวกับการรวบรวมและวิเคราะห์ข้อมูลการทำงานเกี่ยวกับแอปพลิเคชัน ข้อมูลนี้ถูกเขียนไปยังไฟล์ที่เรียกว่าบันทึก ไฟล์บันทึกประกอบด้วยข้อมูลระบบเกี่ยวกับการทำงานของแอปพลิเคชันไคลเอนต์ ตัวอย่างเช่น การดำเนินการของผู้ใช้หรือโปรแกรม
ในบทความนี้ เราจะกล่าวถึงวิธีตั้งค่าการบันทึกกิจกรรมไคลเอนต์ EWS โดยใช้ C# .NET
- C# .NET API เพื่อทำงานร่วมกับ MS Exchange Web Services
- เปิดใช้งานการบันทึกกิจกรรมโดยใช้ไฟล์ App.config
- เปิดใช้งานการบันทึกกิจกรรมโดยใช้ไฟล์ appsettings.json
- เปิดใช้งานการบันทึกกิจกรรมในรหัสโปรแกรม
- ตัวอย่างของข้อมูลล็อกไฟล์
C# .NET API เพื่อทำงานร่วมกับ MS Exchange Web Services
ในการจัดการ MS Exchange Web Services เราจะใช้ Aspose.Email for .NET
เป็น API ที่มีประสิทธิภาพที่ช่วยให้สามารถเข้าถึงบริการต่างๆ ของ MS Exchange Server ได้อย่างไม่มีสะดุด นอกจากนี้ยังมีคุณสมบัติมากมายในการติดตั้งแอปพลิเคชันไคลเอนต์อีเมล
คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งจาก 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
- ระบุพาธสัมพัทธ์หรือพาธสัมบูรณ์ไปยังไฟล์บันทึกEWSdiagnosticLogUseDate
- ระบุว่าจะเพิ่มการแสดงสตริงของวันที่ปัจจุบันให้กับชื่อไฟล์บันทึกหรือไม่
เปิดใช้งานการบันทึกกิจกรรมโดยใช้ไฟล์ 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
- ระบุพาธสัมพัทธ์หรือพาธสัมบูรณ์ไปยังไฟล์บันทึกEWSdiagnosticLogUseDate
- ระบุว่าจะเพิ่มการแสดงสตริงของวันที่ปัจจุบันให้กับชื่อไฟล์บันทึกหรือไม่
เปิดใช้งานการบันทึกกิจกรรมในรหัสโปรแกรม
คุณยังสามารถเปิดใช้งานการบันทึกได้ทันทีในรหัส หมายเหตุ: แม้ว่าคุณจะเปิดใช้งานการบันทึกโดยใช้ไฟล์คอนฟิกูเรชันแล้ว ตัวเลือกนี้จะถูกนำไปใช้
ต่อไปนี้เป็นขั้นตอนในการเปิดใช้งานการเข้าสู่ระบบใน 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 for .NET โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีตั้งค่าการบันทึกกิจกรรมในไคลเอนต์ EWS โดยใช้ C# คุณสมบัตินี้ช่วยให้คุณตรวจสอบแอปพลิเคชันไคลเอนต์ของคุณได้ดีขึ้น นอกจากนี้ คุณสามารถสำรวจ เอกสารประกอบ เพื่ออ่านเพิ่มเติมเกี่ยวกับ Aspose.Email for .NET นอกจากนี้ คุณสามารถถามคำถามของคุณผ่าน ฟอรัม ของเรา