Freigeben über


Integration mit Citrix-Anwendungen in Unified Service Desk

Hinweis

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

Integrieren Sie Ihre Citrix-Anwendungen in Unified Service Desk, indem Sie sie in Unified Service Desk hosten. Dies ermöglicht es Kundendienstmitarbeitern, mit den Citrix-Anwendungen aus dem Unified Service Desk-Client heraus zu interagieren, während sie an den Kundendaten in Microsoft Dataverse arbeiten. Sie können eine Windows-Anwendung als virtuelle Anwendung in 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 auf dem Unified Service Desk-Client gehostet wird, verwendet das ICA-Protokoll (Independent Computing Architecture), um remote mit der Anwendung auf einem Citrix-Server zu kommunizieren. Eine Citrix .ica-Datei enthält Informationen zum Herstellen einer Verbindung mit dem Remoteserver, z. B. die 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 server- und clientseitiger Komponenten für die Integration von Unified Service Desk in Citrix-Anwendungen, Citrix-Beispieladapter und einige Best Practices.

Konfigurieren der serverseitigen Komponente für die Citrix-Integration

Die serverseitige Komponente wird als ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) implementiert, die als Startprogramm konfiguriert ist, das beim Start einer Citrix-Anwendung automatisch gestartet wird. Die ausführbare Datei wird schnell von selbst beendet, wenn die Citrix-Anwendung nicht von einem Unified Service Desk-Client aufgerufen wurde. Die serverseitige Komponente muss auf jedem Citrix-Server konfiguriert werden.

  1. Laden Sie das UII-SDK-Paket (User Interface Integration) herunter.

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

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

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

  5. Wenden Sie den Registrierungspatch auf Ihrem Citrix-Server an, indem Sie die RegPatch Install StartupPrograms on Citrix Server.reg Datei ausführen. Dieser Registrierungspatch kennzeichnet eine ausführbare Datei als Startprogramm, das zusammen mit einer Citrix-Anwendung gestartet wird.

Konfigurieren der clientseitigen Komponente für die Citrix-Integration

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

  • Konfigurieren Sie eine UII-gehostete Anwendungsinstanz (Remote Hosted Application) in Ihrer Dataverse-Instanz, die direkt ohne benutzerdefinierten Code verwendet oder nach Bedarf erweitert werden kann. Aktionen, die auf den von UII gehosteten Anwendungsinstanzen ausgelöst werden, werden mithilfe einer .ica-Datei an die serverseitige Komponente übertragen, wo sie gegebenenfalls an die konfigurierten Anwendungsadapter gesendet werden. Weitere Informationen zu UII-gehosteten Anwendungen finden Sie unter UII-gehostete Anwendungen

  • Kopieren Sie die ausführbare Datei der Citrix-Anwendung und andere erforderliche Assemblys in das Installationsverzeichnis des Unified Service Desk-Clients, wenden Sie den clientseitigen Registrierungspatch an und fügen Sie Citrix-spezifische 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-Clientanwendung installiert ist.

Konfigurieren einer remote gehosteten Anwendung

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

  2. Wählen Sie unter Grundeinstellungendie Option Gehostete Steuerelemente aus.

  3. Wählen Sie + Neu aus.

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

    Feld Wert
    Name Citrix-Anwendung

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

    Die Sortierreihenfolge gibt die Reihenfolge an, in der die gehosteten Anwendungen abgerufen und in Unified Service Desk angezeigt werden.
    Unified Service Desk-Komponententyp CCA-gehostete Anwendung
    Typ der gehosteten Anwendung Remote gehostete Anwendung
    Anwendung global Aktivieren Sie das Kontrollkästchen
    Anzeigegruppe MainPanel
    Adapter Verwenden Sie keinen Adapter
    • Keinen Adapter verwenden: Gibt an, dass für die gehostete Anwendung keine Automatisierung erforderlich ist.
    • Automatisierungsadapter (HAT) verwenden: Gibt die Standardkonfiguration an, die für die Hosted Application Toolkit (HAT) Software Factory verwendet wird. Wenn die gehostete Anwendung einen Automatisierungsadapter (HAT) verwendet, geben Sie die Bindungsinformationen der gehosteten Anwendung im Feld Automatisierungs-XML im Bereich Automatisierung an. Weitere Informationen zu Bindungen finden Sie unter Verwenden des UII-Inspektors zum Erstellen von Bindungen für die gehostete Anwendung.
    • 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 Beispieladapter für Citrix.
    Anwendung ist Dynamik 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 Nichts
    Assembly-URI Microsoft.Uii.Csr.CitrixIntegration
    Art der Montage Microsoft.Uii.Csr.CitrixIntegration.CitrixApplicationHostedControl
    Name der ICA-Datei C:\Q29udHJvbGxlci5DYWxjdWxhdG9y.ica
    Geben Sie den vollständigen Pfad zur .ica-Datei an, die zum Starten der Citrix-Anwendung erforderlich ist. Eine .ica-Datei enthält Informationen zum Herstellen einer Verbindung mit dem Remote-Server, z. B. die Serveradresse, Sitzungseigenschaften und Authentifizierungsinformationen.
    Versuche für Übernahme verarbeiten 5
    Geben Sie an, wie oft die serverseitige ausführbare Datei die Prozesstabelle durchsuchen soll, um nach dem Prozess zu suchen, der die gestartete Citrix-Anwendung ausführt. Es kann eine Weile dauern, bis der Citrix-Anwendungsprozess in der Prozesstabelle angezeigt wird.
    Übernahmeverzögerung verarbeiten 5000
    Geben Sie die Verzögerung in Millisekunden zwischen den einzelnen Scans der Prozesstabellen 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 mit den Dateinamen der ausgeführten Prozesse zu vergleichen und eine Übereinstimmung zu finden.
  6. Speichern Sie das gehostete Steuerelement.

Hinweis

Citrix generiert die ICA-Datei unterwegs über das Citrix-Anwendungsportal. Die vorkonfigurierte Implementierung in Unified Service Desk unterstützt jedoch keine unterwegs generierten ICA-Dateien.

Kopieren der ausführbaren Datei, Anwenden des Registrierungspatches und Hinzufügen von Citrix-Konfigurationseinstellungen

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

  1. Navigieren Sie zu dem <ExtractedFolder>\UII\Bin\UII\Citrix Server Component Ordner, in dem <ExtractedFolder> der Speicherort ist, in den Sie die heruntergeladene UII SDK-Paketdatei im Abschnitt Konfigurieren der serverseitigen Komponente für die Citrix-Integration zuvor extrahiert haben.

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

    • Microsoft.Uii.Csr.CitrixIntegration.exe

    • AxWFICALib.dll

    • WFICALib.dll

  3. Wenden Sie den Registrierungspatch auf Ihrem Unified Service Desk-Clientcomputer an, um die Verwendung benutzerdefinierter virtueller Kanäle zu ermöglichen, indem Sie die folgenden Dateien ausführen, die im <ExtractedFolder>\UII\Bin\UII\Citrix Server Component Ordner verfügbar sind:

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

    • Für x64-Clients: RegPatch Benutzerdefinierte virtuelle Kanäle in ICAClient x64-Client.reg zulassen

    Hinweis

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

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

    Hinweis

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

    Hier ist eine Beschreibung der einzelnen Schlüssel:

    Schlüssel BESCHREIBUNG
    CitrixIntegration.VirtualChannelNamePrefix Für jede gestartete Citrix-Anwendung werden zwei eindeutig benannte virtuelle Kanäle erstellt, die sich ein gemeinsames Präfix teilen. Diese Einstellung macht das Präfix für die Anpassung verfügbar, obwohl dies normalerweise nicht erforderlich ist. Diese Einstellung muss sowohl auf der Client- als auch auf der Serverseite identisch sein.
    CitrixIntegration.XmitFragmentSize Übertragungen virtueller Kanäle werden bis zu dem hier angegebenen Grenzwert fragmentiert. Der Schlüssel wird intern begrenzt, wenn er interne Grenzwerte überschreitet (Protokollnachrichten sollten melden, wenn dies geschieht). Diese Einstellung kann sich zwischen der Client- und Serverseite unterscheiden.
    CitrixIntegration.RecvTimeoutInMilliseconds Wie bei jeder Netzwerkkommunikation sind Timeouts erforderlich, um zu entscheiden, wann der Kommunikationspeer nicht verfügbar ist. Die Kommunikation der Citrix-Integration ist anforderungs-/antwortorientiert, und diese Einstellung gibt an, wie lange es dauert, bis die Antwort zurückgegeben wird, bevor das System das Warten auf die Antwort aufgibt. Diese Einstellung kann sich zwischen der clientseitigen und der serverseitigen Seite unterscheiden.
    CitrixIntegration.HeartbeatMaxWaitInMilliseconds Jede Kommunikationsaktivität über virtuelle Kanäle wird als "Heartbeat" gezählt. Diese Einstellung gibt die maximale Zeitspanne an, die verstreichen kann, ohne dass eine Kommunikation unterbrochen wird, nach der eine der beiden Seiten der Kommunikationskanäle (Client oder Server) zu dem Schluss kommt, dass der gegnerische Peer nicht mehr verfügbar ist. Für das serverseitige ausführbare Programm (Microsoft.Uii.Csr.CitrixIntegration.exe) wird es nach dieser Schlussfolgerung beendet. Für die clientseitige Instanz des gehosteten Steuerelements beendet dies den internen Takt-Pingzeitgeber. Diese Einstellung kann sich zwischen der clientseitigen und der serverseitigen Seite unterscheiden.
    CitrixIntegration.ClientOnly.HeartbeatIntervalInMilliseconds Gibt den Zeitraum eines Timers an, der PING-Nachrichten an die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) auslöst, die wiederum mit entsprechenden PONG-Nachrichten antwortet. Dadurch soll verhindert werden, dass sowohl die Client- als auch die Serverkomponente ihre Kommunikation falsch abschließen. Diese Einstellung gilt nur für die Clientseite.

Citrix-Integration: Wie funktioniert sie?

Nachdem Sie nun wissen, wie Sie die Citrix-Integration in Unified Service Desk konfigurieren, funktioniert die Citrix-Integration ab dem Zeitpunkt, an dem ein Agent das gehostete Steuerelement im Unified Service Desk-Client startet, bis zum Schließen des gehosteten Steuerelements.

  1. Der Kundendienst-Agent startet das von Citrix gehostete Steuerelement über den Unified Service Desk-Client, der die Citrix-Anwendung auf dem Citrix-Server mit dem für das gehostete Steuerelement konfigurierten ICA-Dateinamen startet.

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

  3. Gibt es bei der Anwendungseinstellungsanforderung ein Timeout 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 endet.

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

  4. Unter Verwendung der Anwendungseinstellungen des von Citrix gehosteten Steuerelements wird die serverseitige ausführbare Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) mit der Identifizierung des Citrix-Anwendungsprozesses fortgefahren.

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

    • Wenn der Citrix-Anwendungsprozess identifiziert wird, ruft die serverseitige ausführbare Datei den Prozess ab und fährt mit der Identifizierung des angegebenen oberen Fensters für die Anwendung fort. Die Konfiguration, die häufig für externe Anwendungen verwendet wird, wird von der serverseitigen ausführbaren Datei referenziert 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. Schließlich wird der Anwendungsadapter für das gehostete Steuerelement instanziiert. Der abgerufene Prozess und das obere Fenster werden dem Adapter zur Verfügung gestellt, und alle Adaptervorgänge werden an dieser Stelle zwischen Client und Server weitergeleitet.

    Hinweis

    Wenn der Prozess nicht gefunden werden konnte, ist der Wert null. Wenn das Fenster nicht gefunden werden konnte, ist der Wert 0. 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 Kundendienst-Agent das von Citrix gehostete Steuerelement im Unified Service Desk-Client schließt, wird auch die serverseitige ausführbare Datei beendet.

Beispiele für Citrix-Adapter

Im Folgenden finden Sie einige Beispiele für Citrix-Adapter, die Sie überprüfen/ausprobieren können.

Beispiel für einen Anwendungsadapter

Ein Beispielanwendungsadapter für Citrix ist im UII SDK-Downloadpaket verfügbar. So überprüfen/probieren Sie diesen Adapter aus:

  1. Laden Sie das UII-SDK-Paket (User Interface Integration) herunter.

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

  3. Navigieren Sie zum Ordner <ExtractedFolder>\UII\SampleCode\UII\Citrix\ApplicationAdapter. Die README.txt Datei in diesem Ordner enthält Informationen zu diesem Adapter.

Beispiel Data-Driven Adapter

Um die Verwendung vorhandener Data-Driven Adapter (DDAs) zu erleichtern, ohne dass die Entwicklung eines benutzerdefinierten Adapters erforderlich ist, stellt Unified Service Desk den folgenden Adapter bereit, um das DataDrivenAdapterBindings-Tag zu nutzen, um die DDA zu instanziieren und DDA-Aktionen in Aufrufe der instanziierten DDA zu übersetzen: Microsoft.Uii.HostedApplicationToolkit.DataDrivenAdapter.dll. Standardmäßig ist diese Assembly in Ihrem Unified Service Desk-Clientinstallationsverzeichnis verfügbar.

Wenn Sie den DDA-Beispieladapter mit Ihrem von Citrix gehosteten Steuerelement verwenden möchten, aktualisieren Sie die Definition des gehosteten Steuerelements, um die folgenden Werte im Bereich Adapterkonfiguration für das gehostete Steuerelement anzugeben:

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

Citrix-Integration: Best Practices

Hier sind einige Dinge, die Sie beim Einrichten der Integration mit Citrix-Anwendungen in Betracht ziehen sollten.

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

  • Verwenden Sie die Ablaufverfolgung, um Probleme zu identifizieren und zu beheben. Die Trace-Meldungen helfen Ihnen, Probleme zu identifizieren und zu beheben, sofern vorhanden. 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 z. B. einen der standardmäßigen UII-Protokollierungsanbieter (User Interface Integration) (den Dateiprotokollierungsanbieter) verwenden, um die Ablaufverfolgungsprotokolle in eine Datei zu schreiben. Die Spuren werden auch in allen angehängten Debuggern angezeigt. Dieselben Einstellungen in der clientseitigen Datei (UnifiedServiceDesk.exe.config) aktivieren die clientseitige Ablaufverfolgung.

  • In Windows teilen sich mehrere Prozesse, die dasselbe Programm ausführen, ihre Speicherseiten, die ausführbaren Code enthalten. Es liegt in der Natur von .NET-Programmen, dass der Just-In-Time-Compiler (JIT) die Zwischensprache (Intermediate Language, IL) zur Laufzeit beim Starten der Anwendung zu Maschinenanweisungen (ausführbarer Code) kompiliert. Diese zur Laufzeit durchgeführte Kompilierung verhindert das Teilen ansonsten identischer Code-Seiten, wodurch die Optimierung des Teilens dieser Code-Seiten verhindert wird. Da es sich bei der serverseitigen ausführbaren Datei (Microsoft.Uii.Csr.CitrixIntegration.exe) um ein .NET-Programm handelt, in 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 sie im Cache für systemeigene Images auf dem lokalen Computer zu installieren. Dies ermöglicht eine bessere Auslastung der Serverressourcen, indem systemeigene Images aus dem Cache verwendet werden, anstatt den JIT-Compiler zum Kompilieren der ursprünglichen Assembly zu verwenden.

Siehe auch

UII-gehostete Anwendungen

Erstellen und Verwalten von UII-gehosteten Anwendungen

Erweitern Sie Unified Service Desk