Pertukaran Layanan Web

Logging digunakan untuk debugging, serta untuk mengumpulkan dan menganalisis informasi kerja tentang aplikasi. Informasi ini ditulis ke file yang disebut log. File log berisi informasi sistem tentang pengoperasian aplikasi klien, misalnya, tindakan pengguna atau program.

Pada artikel ini, kami akan membahas cara menyiapkan pendataan aktivitas klien EWS menggunakan C# .NET.

C# .NET API untuk Bekerja dengan Layanan Web MS Exchange

Untuk mengelola Layanan Web MS Exchange, kami akan menggunakan Aspose.Email for .NET.

Ini adalah API yang kuat yang memungkinkan akses ke berbagai layanan MS Exchange Server dengan mulus. Selain itu, ia menyediakan banyak fitur untuk mengimplementasikan aplikasi klien email.

Anda dapat mengunduh DLL API atau menginstalnya dari NuGet menggunakan perintah berikut.

PM> Install-Package Aspose.Email 

Aktifkan Pencatatan Aktivitas menggunakan File App.config

Opsi ini cocok untuk aplikasi di mana app.config adalah cara pilihan untuk menjaga konfigurasi aplikasi.

Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.

  • Pertama, tambahkan file konfigurasi aplikasi ke proyek C#, jika belum ditambahkan sebelumnya.
  • Kemudian, tambahkan konten berikut ke file konfigurasi.
<?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>

Kita dapat melihat dua bagian pengaturan:

  • EWSDiagnosticLog - Menentukan jalur relatif atau absolut ke file log.
  • EWSDiagnosticLogUseDate - menentukan apakah akan menambahkan representasi string dari tanggal saat ini ke nama file log.

Aktifkan Pencatatan Aktivitas menggunakan File appsettings.json

Opsi ini lebih disukai untuk aplikasi .NET Core.

Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.

  • Pertama, tambahkan file konfigurasi appsettings.json ke proyek C#, jika belum pernah ditambahkan sebelumnya. Pastikan bahwa file proyek berisi baris berikut di bagian ItemGroup:
<Content Include="appsettings.json">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
  • Kemudian, tambahkan konten berikut ke file appsettings.json.
{
  "EWSDiagnosticLog": "ews.log",
  "EWSDiagnosticLog_UseDate": true
}

Kita dapat melihat dua properti:

  • EWSDiagnosticLog - Menentukan jalur relatif atau absolut ke file log.
  • EWSDiagnosticLogUseDate - menentukan apakah akan menambahkan representasi string dari tanggal saat ini ke nama file log.

Aktifkan Log Aktivitas di Kode Program

Anda juga dapat mengaktifkan log langsung dalam kode. Catatan: meskipun Anda telah mengaktifkan pembuatan log dengan menggunakan file konfigurasi, opsi ini akan diterapkan.

Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.

using (var client = EWSClient.GetEWSClient("https://outlook.office365.com/EWS/Exchange.asmx", credentials))
{
  client.LogFileName = @"Aspose.Email.EWS.log";
  client.UseDateInLogFileName = false;
}

Contoh info file log

Di bawah ini adalah contoh entri file log ketika metode ListMessages dijalankan. Setiap entri baru didahului oleh stempel waktu.

Entri berikut dapat dibedakan dalam file log:

  1. Tajuk file log. Termasuk versi Aspose.Email, nama, dan waktu mulai.
Aspose.Email for .NET [22.10.0.0] EWS Client diagnostic log

Started: 07.11.2022 13:40:16
  1. Permintaan SOAP ke server.
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>
  1. Header respons 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
  1. Respons server 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>

Dapatkan Lisensi API Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk menggunakan Aspose.Email for .NET tanpa batasan evaluasi.

Kesimpulan

Dalam artikel ini Anda telah mempelajari cara menyiapkan pencatatan aktivitas di klien EWS menggunakan C#. Fitur ini memungkinkan Anda untuk memantau aplikasi klien Anda dengan lebih baik. Selain itu, Anda dapat menjelajahi dokumentasi untuk membaca lebih lanjut tentang Aspose.Email for .NET. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.

Lihat juga