共用方式為


建立自訂接聽程式進行稽核、診斷和追蹤

 

發行︰ 2016年11月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016

接聽程式可讓您將目標鎖定檔案記錄輸出,事件記錄或其他來源。 直到上一版 Unified Service Desk 以前,都只能使用標準接聽程式來寫入 Unified Service Desk 中的稽核、診斷及追蹤記錄。

有了 Unified Service Desk 2.0 之後,才可以設定自訂接聽程式來記錄稽核、診斷和追蹤資料。 使用包含組件 (.dll 檔案,內含自訂接聽程式碼) 參照的新類型託管控制項 (稱為接聽程式託管控制項) 來指定自訂接聽程式。

本主題內容

建立自訂接聽程式涉及哪些方面?

定義 Unified Service Desk 的自訂接聽程式

準備發佈範例程式碼

建立接聽程式託管控制項執行個體來使用自訂接聽程式碼

系統管理員的後續步驟

建立自訂接聽程式涉及哪些方面?

在 Unified Service Desk 中建立和使用自訂接聽程式,需要開發人員和系統管理員一起合作。 下表簡述此程序。

步驟

誰來執行?

工作​​

請參閱這裡

1

開發人員

為自訂接聽程式撰寫程式碼。

定義 Unified Service Desk 的自訂接聽程式

2

開發人員

將組件壓縮成 .zip 檔案,以建立 Unified Service Desk 的自訂檔案。

準備發佈範例程式碼

3

開發人員/系統管理員

建立接聽程式託管控制項執行個體來使用自訂接聽程式碼。

建立接聽程式託管控制項執行個體來使用自訂接聽程式碼

4

系統管理員

建立 [稽核與診斷設定] 記錄的執行個體,以設定稽核、診斷或追蹤記錄資訊。

TechNet:設定 Unified Service Desk 的稽核和診斷

5

系統管理員

建立 [自訂檔案],並開發人員在步驟 #2 建立的附加 .zip 檔案。

TechNet:使用自訂檔案發佈自訂託管控制項

6

系統管理員

將 [自訂檔案] 記錄附加至 [設定] 實體的適當執行個體。

TechNet:建立稽核及診斷與設定的關聯

定義 Unified Service Desk 的自訂接聽程式

您可以將稽核、診斷及追蹤記錄的自訂接聽程式碼結合成單一組件或不同組件。 包含接聽程式碼的類別必須衍生自:

注意

記下接聽程式碼中的命名空間和類別名稱。 您需要這些記事來建立要參照自訂程式碼的接聽程式託管控制項執行個體。

稽核記錄的自訂接聽程式

下列範例程式碼示範如何建立接聽程式,將稽核資料寫入 C:\USDLogs 資料夾中的 USDAudit.log 檔案。

using Microsoft.Uii.AifServices;
using Microsoft.Uii.Common.Entities;
using Microsoft.Uii.Common.Logging;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SampleCustomUSDListener
{
    public class CustomUSDAuditListener : IAuditService
    {
        public void SaveAudit(IEnumerable<Microsoft.Uii.Common.Entities.LogData> logCache)
        {
            LogToFile(logCache);
        }

        private void LogToFile(IEnumerable<LogData> logCache)
        {
            string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDAudit.log";
            foreach (var item in logCache)
            {
                try
                {
                    File.AppendAllText(filename, item.GetLogData());
                }
                catch (Exception ex)
                { 
                    Logging.Error("USD",ex.StackTrace); 
                }
            }
        }
    }
}

診斷記錄的自訂接聽程式

下列範例程式碼示範如何建立接聽程式,將診斷資料寫入 C:\USDLogs 資料夾中的 USDDiagnostics.log 檔案。

using Microsoft.Uii.Common.Logging;
using Microsoft.Uii.Common.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Configuration;
using System.Threading.Tasks;

namespace SampleCustomUSDListener
{
    class CustomUSDDiagnosticListener : ILogging
    {
        string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDDiagnostics.log";
        public void Error(string applicationName, string message, string advanced)
        {
            File.AppendAllText(filename, "\nError is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message + "\nAdvanced:\n" + advanced);
        }

        public void Information(string applicationName, string message)
        {
            File.AppendAllText(filename, "\nInformation is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
        }

        public void Initialize(string name, System.Collections.Specialized.NameValueCollection configValue)
        {
            //Not needed
        }

        public bool ShowErrors
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Tag
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public void Trace(string applicationName, string message)
        {
            File.AppendAllText(filename, "\nVerbose is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
        }

        public void Warn(string applicationName, string message)
        {
            File.AppendAllText(filename, "\nWarning is logged\n" + "\nApplication Name:\n" + applicationName + "\nMessage:\n" + message);
        }
    }
}

追蹤記錄的自訂接聽程式

下列範例程式碼示範如何建立接聽程式,將追蹤資料寫入 C:\USDLogs 資料夾中的 USDTraces.log 檔案。

using System;
using System.Diagnostics;
using System.IO;

namespace SampleCustomUSDListener
{
    class CustomUSDTraceListener : TraceListener
    {
        string filename = Path.GetPathRoot(Environment.SystemDirectory) + "USDLogs\\USDTraces.log";
        public override void Write(string message)
        {
            File.AppendAllText(filename, message);
        }

        public override void WriteLine(string message)
        {
            File.AppendAllText(filename, message);
        }
    }
}

準備發佈範例程式碼

將自訂接聽程式碼建置成組件 (.dll) 檔案後,請與系統管理員合作將程式碼發佈至用戶端電腦,讓這些電腦可以使用您的自訂接聽程式。 若要發佈自訂檔案,請將這些檔案與 [Content_Types].xml 檔案一起壓縮成 .zip 檔案,然後提供 .zip 檔案給系統管理員,將它附加至 Customization Files 記錄。 請參閱系統管理員的後續步驟。

[Content_Types].xml 檔案會提供已納入 .zip 檔案之檔案類型副檔名的 MIME 類型檔案。 檔案類型通常是:.config、.dll、.exe 和 .xml。 不過,您可以將 Windows 支援的任何檔案類型納入 [Content_Types].xml 檔案和 zip 檔案。

以下是範例 [Content_Types].xml 檔案,其中列出通常用於自訂 Unified Service Desk 的檔案:

<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
  <Default Extension="config" ContentType="application/octet-stream" />
  <Default Extension="dll" ContentType="application/octet-stream" />
  <Default Extension="exe" ContentType="application/octet-stream" />
  <Default Extension="xml" ContentType="application/octet-stream" />
</Types>

建立接聽程式託管控制項執行個體來使用自訂接聽程式碼

Unified Service Desk 中新增的接聽程式託管控制項可讓您參照和使用自訂接聽程式碼,依照您的程式碼來記錄資料。 新的託管控制項畫面中的 [組件資訊] 區域可讓您指定有關要透過接聽程式託管控制項參照之組件的詳細資料。 在 [組件 URI] 欄位以及 [組件類型] 欄位的 <AssemblyName>.<ClassName> 中指定您的組件 (.dll) 名稱。<ClassName> 必須是包含您的程式碼的類別。

建立接聽程式託管控制項

例如,如果我們考慮採用本主題稍早的自訂接聽程式範例程式碼,並假設所有的範例程式碼都已編譯成名為 SampleCustomUSDListener.dll 的單一組件,那麼您就必須使用 [組件 URI] 及 [組件類型] 欄位中的下列值,為稽核、診斷和追蹤個別建立接聽程式託管控制項記錄。

稽核

診斷

追蹤

  • 組件 URI:SampleCustomUSDListener

  • 組件類型:SampleCustomUSDListener.CustomUSDAuditListener

  • 組件 URI:SampleCustomUSDListener

  • 組件類型:SampleCustomUSDListener.CustomUSDDiagnosticListener

  • 組件 URI:SampleCustomUSDListener

  • 組件類型:SampleCustomUSDListener.CustomUSDTraceListener

儲存接聽程式託管控制項記錄。

系統管理員的後續步驟

身為系統管理員,您必須立即使用組織中的自訂接聽程式碼,執行下列兩項工作:

另請參閱

擴充 Unified Service Desk

Unified Service Desk 2.0

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權