Integrieren von Citrix-Anwendungen in Unified Service Desk

Anmerkung

Das Hosten von Citrix-Anwendungen in Unified Service Desk wird nicht mehr unterstützt.

Integrieren Sie Ihre Citrix-Anwendungen mit Unified Service Desk, indem Sie sie in Unified Service Desk hosten. Dadurch können die Bearbeiter des Customer Service vom Unified Service Desk Client aus mit den Citrix-Anwendungen interagieren, während sie an den Kundendaten in Microsoft Dataverse arbeiten. Sie können eine Windows-Anwendung als virtuelle Anwendung auf der Citrix XenApp 7.6 konfigurieren, die als gehostete Anwendung in Unified Service Desk ausgeführt wird. Weitere Informationen: Softwareanforderungen für die Citrix XenApp-Anwendungsvirtualisierung

Die Citrix-Anwendung, die im Unified Service Desk-Client gehostet wird, nutzt das Independent Computing Architecture-Protokoll (ICA), um mit der Anwendung auf einem Citrix-Server remote zu kommunizieren. Eine Citrix .ica-Datei enthält Informationen zur Verbindung zum Remoteserver wie Serveradresse, Sitzungseigenschaften und Authentifizierungsinformationen.

Weitere Informationen zur Integration von Unified Service Desk mit Citrix finden Sie unter Blog: Citrix und Unified Service Desk

Dieses Thema enthält Informationen zum Konfigurieren der server- und clientseitigen Komponenten für die Integration von Unified Service Desk in Citrix-Anwendungen, Citrix-Beispieladapter und bewährte Verfahren.

Konfigurieren der serverseitigen Komponente zur Citrix-Integration

Die serverseitige Komponente wird als ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) implementiert, die als Startprogramm konfiguriert wird, um automatisch gestartet zu werden, wenn eine Citrix-Anwendung startet. Die ausführbare Datei beendet sich schnell selbst, wenn die Citrix-Anwendung nicht von einem Unified Service Desk Client aufgerufen wurde. Die serverseitige Komponente muss für jeden Citrix-Server konfiguriert werden.

  1. Download das User Interface Integration (UII) SDK-Paket.

  2. Doppelklicken Sie auf die Paketdatei, um den Inhalt zu extrahieren.

  3. Navigieren Sie zum <ExtractedFolder>\UII\Bin\UII\Citrix Server Component-Ordner, und kopieren Sie dann alle Dateien in diesem Ordner in einen Ordner (z. B. ServerSideComponent) auf dem Citrix-Server.

  4. Bearbeiten Sie im ServerSideComponent-Ordner des Citrix-Servers die RegPatch Install StartupPrograms on Citrix Server.reg-Datei mit Notepad, um den Wert des Parameters StartupPrograms auf den vollständigen Dateipfad der ausführbaren Microsoft.Uii.Csr.CitrixIntegration.exe-Datei festzulegen.

  5. Übernehmen Sie den Registrierungspatch des Citrix-Servers durch Ausführen der RegPatch Install StartupPrograms on Citrix Server.reg-Datei. Dieser Registrierungspatch kennzeichnet eine ausführbare Datei als Startprogramm, das neben einer Citrix-Anwendung gestartet wird.

Konfigurieren der clientseitigen Komponente zur Citrix-Integration

Die clientseitige Konfiguration für die Citrix-Integration umfasst zwei Dinge:

  • Konfigurieren einer Instanz der gehosteten UII-Anwendung (Remote Hosted Application) in Ihrer Dataverse-Instanz, die ohne einen benutzerdefinierten Code direkt verwendet oder bei Bedarf erweitert werden kann. Die Aktionen, die für die Instanzen der gehosteten UII-Anwendung ausgelöst werden, werden mithilfe einer ICA-Datei zur serverseitigen Komponente übertragen, wo sie an die konfigurierten Anwendungsadapter weitergeleitet werden, sofern vorhanden. Weitere Informationen zur UII gehosteten Anwendungen finden Sie unter Dynamic UII gehostete Anwendung

  • Kopieren Sie die ausführbare Citrix-Anwendung und andere erforderliche Baugruppen in das Installationsverzeichnis des Unified Service Desk Clients, wenden Sie den clientseitigen Registrierungspatch an und fügen Sie die Citrix-spezifischen Einstellungen in der Konfigurationsdatei der Unified Service Desk Client App hinzu. Dieser Schritt muss auf jedem Computer ausgeführt werden, auf dem die Unified Service Desk Client-Anwendung installiert ist.

Konfigurieren einer gehosteten Remoteanwendung

  1. Melden Sie sich bei Unified Service Desk Administrator an.

  2. Wählen Sie Gehostete Steuerelemente unter Grundeinstellungen.

  3. Wählen Sie + Neu.

  4. Geben Sie Folgendes in der Registerkarte Allgemein auf der Seite Neues gehostetes Steuerelement ein.

    Feld Wert
    Name des Dataflows Citrix-Anwendung

    Geben Sie einen Namen für das gehostete Steuerelement an. Jede gehostete Anwendung sollte einen eindeutigen Namen besitzen.
    Sort 5
    Hinweis: Dies ist ein Beispielwert.

    Die Sortierreihenfolge gibt die Reihenfolge an, in der die gehosteten Anwendungen in Unified Service Desk abgerufen und angezeigt werden.
    Unified Service Desk – Komponententyp Gehostete CCA-Anwendung
    Gehosteter Anwendungstyp Gehostete Remoteanwendung
    Anwendung global Aktivieren Sie das Kontrollkästchen
    Anzeigegruppe MainPanel
    Adapter Verwenden Sie No Adapter
    • Keinen Adapter verwenden: Gibt an, dass die gehostete Anwendung keine Automatisierung erfordert.
    • Automatisierungs-Adapter verwenden (HAT): Gibt die Standard-Konfiguration an, die für die Hosted Application Toolkit (HAT)-Software-Fabrik verwendet wird. Wenn die gehostete Anwendung einen Automatisierungs-Adapter (HAT) verwendet, geben Sie die Bindungs-Informationen der gehosteten Anwendung im Feld Automatisierungs-XML field im Bereich Automatisierung an. Weitere Informationen zu Bindungen finden Sie unter Verwenden des UII-Inspektors, um Bindungen für die gehostete Anwendung zu erstellen.
    • Adapter verwenden: Gibt an, dass die gehostete Anwendung einen benutzerdefinierten Adapter verwendet.
    Informationen zur Verwendung von Adaptern für die Citrix-Integration finden Sie unter Citrix-Beispieladapter
    Anwendung ist Dynamics Ja
    Benutzer kann schließen Aktivieren Sie das Kontrollkästchen
  5. Wählen Sie die Registerkarte Hosting aus, und geben Sie Folgendes an.

    Feld Wert
    Fenstermodus der obersten Ebene Keine
    Assembly-URI Microsoft.Uii.Csr.CitrixIntegration
    Assemblytyp Microsoft.Uii.Csr.CitrixIntegration.CitrixApplicationHostedControl
    ICA-Dateiname C:\Q29udHJvbGxlci5DYWxjdWxhdG9y.ica
    Geben Sie den vollständigen Pfad zur ICA-Datei ein, die zum Starten der Citrix-Anwendung erforderlich ist. Eine ICA-Datei enthält Informationen zur Verbindung zum Remoteserver wie Serveradresse, Sitzungseigenschaften und Authentifizierungsinformationen.
    Versuche für Übernahme verarbeiten 5
    Geben Sie die Häufigkeit an, in der die serverseitige ausführbare Datei die Prozesstabelle durchsuchen soll, um nach dem Prozess, der die gestartete Citrix-Anwendung ausführt, zu suchen. Der Citrix-Anwendungsprozess kann eine Weile brauchen, bis er in der Prozesstabelle aufgeführt wird.
    Übernahmeverzögerung verarbeiten 5000
    Geben Sie die Verzögerung zwischen jedem Prozesstabellenscan in Millisekunden an.
    FileName für Übernahme verarbeiten Geben Sie den vollständigen Pfad zum Dateinamen der Citrix-Anwendung an. Dieser Wert wird von der serverseitigen ausführbaren Datei verwendet, um einen Vergleich mit den Dateinamen der laufenden Prozesse durchzuführen, um eine Übereinstimmung zu finden.
  6. Speichern Sie das gehostete Steuerelement.

Anmerkung

Citrix generiert die ICA-Datei mithilfe des Citrix-Anwendungsportals unterwegs. Allerdings unterstützt die vorgegebene Implementierung in Unified Service Desk die unterwegs erstellte ICA-Datei nicht.

Kopieren der ausführbaren Datei, Übernehmen des Registrierungspatches und Hinzufügen der Citrix-Konfigurationseinstellungen

Dieser Schritt muss auf jedem Computer ausgeführt werden, auf dem die Unified Service Desk Client-Anwendung installiert ist.

  1. Navigieren Sie zum <ExtractedFolder>\UII\Bin\UII\Citrix Server Component-Ordner, wobei <ExtractedFolder> der Ort ist, an dem Sie die heruntergeladene UII-SDK-Paketdatei im vorherigen Abschnitt Konfigurieren der serverseitigen Komponente zur Citrix-Integration extrahiert haben.

  2. Kopieren Sie die folgenden Dateien aus dem Ordner <ExtractedFolder>\UII\Bin\UII\Citrix Server Component in den Unified Service Desk Client-Ordner (typischerweise C:\Program Files\Microsoft Dynamics CRM USD\USD):

    • Microsoft.Uii.Csr.CitrixIntegration.exe

    • AxWFICALib.dll

    • WFICALib.dll

  3. Wenden Sie den Registry-Patch auf Ihrem Unified Service Desk Client-Computer an, um die Verwendung angepasster virtueller Channels zu ermöglichen, indem Sie die folgenden Dateien ausführen, die im Ordner <ExtractedFolder>\UII\Bin\UII\Citrix Server Component verfügbar sind:

    • Für x86 Client: RegPatch Allow Custom Virtual Channels in ICAClient.reg

    • Für x64 Client: RegPatch Allow Custom Virtual Channels in ICAClient x64 Client.reg

    Notiz

    Wird dieser Registrierungspatch nicht angewendet, ist die Kommunikation zwischen Client und Server nicht möglich.

  4. Fügen Sie die folgenden App-Einstellungen in der Datei UnifiedServiceDesk.exe.config hinzu, die im Installationsverzeichnis des Unified Service Desk Clients verfügbar ist. Diese App-Einstellungen müssen unter dem <configuration>-Stammknoten hinzugefügt werden:

    <appSettings>
        <add key="CitrixIntegration.VirtualChannelNamePrefix" value="CTXUII"/>
        <add key="CitrixIntegration.XmitFragmentSize" value="200"/>
        <add key="CitrixIntegration.RecvTimeoutInMilliseconds" value="2000"/>
        <add key="CitrixIntegration.HeartbeatMaxWaitInMilliseconds" value="60000"/>
        <add key="CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds" value="15000"/>
    </appSettings>
    

    Notiz

    Diese App-Einstellungen sind auch in der serverseitigen Komponente in der Microsoft.Uii.Csr.CitrixIntegration.exe.config-Datei verfügbar.

    Hier finden Sie eine Beschreibung jedes Schlüssels:

    Schlüssel Beschreibung
    CitrixIntegration.VirtualChannelNamePrefix Für jede gestartete Citrix-Anwendung werden zwei deutlich benannte virtuelle Kanäle mit einem gemeinsamen Präfix erstellt. Diese Einstellung stellt das Präfix für die Anpassung zur Verfügung, obwohl es meist nicht erforderlich ist. Diese Einstellung muss sowohl clientseitig als auch serverseitig identisch sein.
    CitrixIntegration.XmitFragmentSize Übertragungen des virtuellen Kanals werden auf das hier angegebene Limit fragmentiert. Für eine ist und mit einer Kappe bedeckt, die Beschränkungen für übersteigt (Tracemessaging, Bericht, wenn dieser Fehler auftritt.) Diese Einstellung kann sich zwischen dem und clientseitigen das serverseitig unterscheiden.
    CitrixIntegration.RecvTimeoutInMilliseconds Wie bei jeder Netzwerkkommunikation sind Timeouts erforderlich, um zu entscheiden, wann der Kommunikationspeer nicht verfügbar ist. Die Citrix-Integrationskommunikation ist anforderungs-/antwortorientiert, und diese Einstellung gibt an, wie lange es dauert, bis die Antwort zurückgegeben wird, bevor das System nicht mehr auf die Antwort wartet. Diese Einstellung kann sich clientseitig und serverseitig unterscheiden.
    CitrixIntegration.HeartbeatMaxWaitInMilliseconds Jede Kommunikationsaktivität im virtuellen Kanal wird als „Heartbeat“ gezählt. Diese Einstellung legt die maximale Zeitspanne fest, die ohne zwischengeschaltete Kommunikation vergehen kann, nach der eine der beiden Seiten der Kommunikationskanäle (Client oder Server) zu dem Schluss kommt, dass die Gegenseite nicht mehr verfügbar ist. Für die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) wird dies nach diesem Beschluss beendet. Für die clientseitige Instanz des gehosteten Steuerelements beendet dies den internen Takt-Pingzeitgeber. Diese Einstellung kann sich clientseitig und serverseitig unterscheiden.
    CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds Gibt den Zeitraum eines Zeitgebers an, der PING-Nachrichten für die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) auslöst, die dann mit entsprechenden PONG-Nachrichten antwortet. So wird vermieden, dass die Client- und Serverkomponenten ihre Kommunikation nicht ordnungsgemäß beschließen. Diese Einstellung gilt nur clientseitig.

Citrix-Integration: Wie wird sie verwendet?

Jetzt, wo Sie wissen, wie die Citrix-Integration in Unified Service Desk konfiguriert wird, erfahren Sie nun, wie die Citrix-Integration direkt beim Starten des gehosteten Steuerelements im Unified Service Desk-Client durch den Agent funktioniert, wenn das gehostete Steuerelement geschlossen ist.

  1. Der Kundenserviceagent startet das gehostete Citrix-Steuerelement im Unified Service Desk-Client, der die Citrix-Anwendung auf dem Citrix-Server startet, mithilfe des ICA-Dateinamens, der für das gehostete Steuerelement konfiguriert ist.

  2. Die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) startet automatisch und fordert die Citrix-Anwendungseinstellungen, die für das gehostete Steuerelement im Unified Service Desk-Client konfiguriert wurden, an. Sie konfigurierten diese Informationen im Abschnitt in Schritt 8 Konfigurieren einer Remote gehostete Anwendung

  3. Gibt es bei der Anwendungseinstellungsanforderung eine Zeitüberschreitung auf Grundlage des Werts, der in der CitrixIntegration.RecvTimeoutInMilliseconds-App-Einstellung angegeben ist, beschließt die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe), dass die Citrix-Anwendungsinstanz keine gehostete UII-Anwendung ist, und bricht ab.

    Gibt es bei der Anwendungseinstellungsanforderung kein Timeout, können Sie mit dem nächsten Schritt fortfahren.

  4. Beim Verwenden der Anwendungseinstellungen des gehosteten Citrix-Steuerelements fährt die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) damit fort, den Citrix-Anwendungsprozess zu identifizieren.

    • Wenn der Citrix-Anwendungsprozess nicht erkannt werden konnte, wird die serverseitige ausführbare Datei weiter ausgeführt und sendet eine Nachricht an den Client darüber. Sie können die Meldung anzeigen, wenn Sie die Verfolgung aktiviert haben.

    • Wenn der Citrix-Anwendungsprozess erkannt wird, ruft die serverseitige ausführbare Datei den Prozess ab und fährt mit der Ermittlung des gekennzeichneten oberen Fensters für die Anwendung fort. Die Konfiguration, die allgemein für externe Anwendungen verwendet wird, wird durch die serverseitige ausführbare Datei verwiesen und kann genutzt werden, um ein nicht standardmäßiges oberes Fenster auszuwählen. Wenn das obere Fenster nicht gefunden werden kann, wird die serverseitige ausführbare Datei weiter ausgeführt und sendet eine Info-Nachricht an den Client, was angezeigt wird, wenn die Ablaufverfolgung aktiviert ist.

  5. Abschließend wird der Anwendungsadapter für das gehostete Steuerelement instanziiert. Der abgerufene Prozess und das obere Fenster werden dem Adapter bereitgestellt, und alle Adaptervorgänge werden zwischen Clients und Server an dieser Stelle weitergeleitet.

    Notiz

    Wenn der Prozess nicht gefunden werden kann, ist der Wert null. Wenn das Fenster nicht gefunden werden kann, ist der Wert null. Wenn der Adapter nicht instanziiert werden kann, wird die serverseitige ausführbare Datei weiter ausgeführt und sendet eine Info-Nachricht an den Client, was angezeigt wird, wenn die Ablaufverfolgung aktiviert ist.

  6. Wenn der Kundenserviceagent das gehostete Citrix-Steuerelement im Unified Service Desk-Client schließt, wird die serverseitige ausführbare Datei auch beendet.

Beispiel Citrix-Adapter

Im Anschluss finden Sie einige Citrix-Beispiel-Adapter, die Sie prüfen/ausprobieren können.

Beispiel Anwendungsadapter

Ein Anwendungs-Beispieladapter für Citrix ist im UII-SDK-Downloadpaket verfügbar. So überprüfen/testen Sie den Adapter:

  1. Download das User Interface Integration (UII) SDK-Paket.

  2. Doppelklicken Sie auf die Paketdatei, um den Inhalt zu extrahieren.

  3. Wechseln Sie zum Ordner <ExtractedFolder>\UII\SampleCode\UII\Citrix\ApplicationAdapter. Die Datei README.txt im Ordner enthält Informationen zu diesen Adapter.

Beispiel datengesteuerter Adapter

Um die Verwendung der vorhandenen datengesteuerten Adapter (DDAs) ohne erforderliche Entwicklung eines benutzerdefinierten Adapters zu vereinfachen, bietet Unified Service Desk den folgenden Adapter zum Nutzen des DataDrivenAdapterBindings-Tags, um den DDA zu instanziieren und um DDA-Aktionen für Aufrufe zum instanziierten DDA zu übersetzen: Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.dll. Diese Assembly ist standardmäßig im Unified Service Desk-Clientinstallationsverzeichnis verfügbar.

Um den DDA-Beispiel-Adapter mit Ihrem gehosteten Citrix-Steuerelement zu verwenden, aktualisieren Sie die Definition für das gehostete Steuerelement, um die folgenden Werte im Bereich Adapter-Konfiguration für das gehostete Steuerelement anzugeben:

Feld Wert
Adapter Adapter verwenden
URI Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter
Typ Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.DdaAutomationAdapter

Citrix-Integration: bewährte Verfahren

Im Anschluss finden Sie einige Aspekte, die Sie beim Einrichten der Integration in Citrix-Anwendungen beachten sollten.

  • Stellen Sie sicher, dass die Citrix-Anwendung, die Sie in Unified Service Desk hosten möchten, erfolgreich und eigenständig gestartet werden kann, indem Sie sie explizit starten.

  • Verwenden Sie die Ablaufverfolgung, um Probleme zu identifizieren und zu beheben. Mit dem Ablaufverfolgungsmessaging können Sie etwaige Probleme identifizieren und beheben. Standardmäßig ist die Verbose-Ablaufverfolgung in der Microsoft.Uii.Csr.CitrixIntegration.exe.config-Datei aktiviert, um die Ausführungsnachrichten auf dem Server zu protokollieren:

    <add name="Microsoft.Uii.Common.Logging" value="Verbose"/>
    

    Sie können dann einen der Standardprotokollierungsanbieter der User Interface Integration (UII) verwenden, z.B. (den Dateiprotokollierungsanbieter, um die Ablaufverfolgungsprotokolle in eine Datei zu schreiben. Die Ablaufverfolgungen werden ebenfalls in allen angefügten Debuggern angezeigt. Dieselben Einstellungen in der clientseitigen Datei (UnifiedServiceDesk.exe.config) aktivieren die clientseitige Ablaufverfolgung.

  • Bei Windows geben mehrere Prozesse, die dasselbe Programm ausführen, ihre Speicherseiten mit ausführbarem Code frei. Die Art von .NET-Programmen ist, dass der Just-In-Times Compiler (JIT) die Intermediate Language (IL) zu Computerbefehlen (ausführbarer Code) zur Laufzeit kompiliert, wenn die Anwendung gestartet wird. Diese Laufzeitkompilierung unterbindet die Freigabe von andernfalls identischen Codeseiten, was die Codeseitenfreigabenoptimierung verhindert. Da die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) ein .NET-Programm ist, bei dem mehrere Instanzen auf einem einzelnen Computer ausgeführt werden können, ist es effektiv, das Tool Ngen.exe (Native Image Generator) zu nutzen, um systemeigene Images der abhängigen Assemblys für die serverseitige ausführbare Datei zu erstellen und diese im Zwischenspeicher des systemeigenen Images auf dem lokalen Computer zu installieren. Dies erleichtert die bessere Serverressourcennutzung, indem systemeigene Images aus dem Cache verwendet werden statt der JIT-Compiler, um die ursprüngliche Assembly zu kompilieren.

Siehe auch

Gehostete UII-Anwendungen

Erstellen und Verwalten von UII-gehosteten Steuerelementen

Unified Service Desk erweitern