Schritt 4: Erstellen einer Webanwendungsseite zum Überwachen von Konvertierungen

Letzte Änderung: Dienstag, 6. April 2010

Gilt für: SharePoint Server 2010

In diesem Thema erstellen Sie eine SharePoint Server 2010-Anwendungsseite, mit der Sie Word-Automatisierungsdienste-Dokumentkonvertierungen überwachen.

Erstellen einer Anwendungsseite zum Überwachen von Konvertierungen

Die Anwendungsseite, die Sie in Schritt 3 dieser exemplarischen Vorgehensweise erstellt haben, enthält eine Schaltfläche, über die eine Anwendungsseite gestartet wird, mit der die Benutzer Dokumentkonvertierungen überwachen können. In den folgenden Verfahren wird gezeigt, wie Sie Code in der Anwendungsseite und der zugeordneten CS-CodeBehind-Seite schreiben, mit dem die Benutzer den Status eines Dokumentkonvertierungsauftrags überwachen können.

So erstellen Sie die Anwendungsseite

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Element.

  2. Wählen Sie in der Elementliste die Option Anmeldeseiten aus.

  3. Geben Sie einen Namen für die Anwendungsseite ein, z. B. ConvertStatus.aspx.

  4. Klicken Sie auf Hinzufügen, um dem Projekt die Anwendungsseite hinzuzufügen.

    Die Seite enthält drei von der SharePoint Server 2010-Gestaltungsvorlage geerbte Inhaltsbereiche, die Sie überschreiben, um die angepasste Anwendungsseite zu erstellen.

  5. Suchen Sie in dem HTML-Code für die Seite ConvertStatus.aspx das <asp:Content>-Tag mit einem ID-Attributwert PageTitle. Fügen Sie eine Zeichenfolge für den Seitentitel hinzu, z. B. Convert Document.

  6. Suchen Sie nach dem <asp:Content>-Tag mit einem ID-Attributwert PageTitleInTitleArea. Fügen Sie eine Zeichenfolge für diesen Bereich der Seite hinzu, z. B. Convert Document.

  7. Suchen Sie nach dem <asp:Content>-Tag mit einem ID-Attributwert Main. Fügen Sie den folgenden HTML-Code für die Seite hinzu.

    <table cellpadding="5">
    <tr><td><p style="text-align:center">Converting document...</p></td></tr>
    <tr><td><p style="text-align:center"><img src="../images/PROGRESS-CIRCLE-24.GIF" alt="Converting file..." /></p></td></tr>
    <tr><td><p style="text-align:center">This page will automatically refresh once the conversion is complete, or you can return to the document library and the file will be added automatically when available.</p></td></tr>
    <tr><td><p style="text-align:center"></p></td></tr>
    </table>
    
    
  8. Fügen Sie in der letzten Zeile der Tabelle ein Steuerelement vom Typ Schaltfläche hinzu, über das der Benutzer zum Quellspeicherort zurückkehren kann.

    <asp:Button ID="btnReturn" runat="server" Text="Return to Library" />
    
  9. Fügen Sie nach dem Code, mit dem die Tabelle definiert wird, ein Steuerelement vom Typ Timer hinzu, mit dem das Intervall festgelegt wird, in dem der Code prüft, ob die Konvertierung abgeschlossen wurde.

    <asp:Timer ID="timer" runat="server" Interval="5000" EnableViewState="True"></asp:Timer>
    

    Die Interval-Eigenschaft gibt an, wie oft in Millisekunden der Zeitgeber die Seite ausführt und aktualisiert. In diesem Fall gibt der Wert 5000 an, dass der Zeitgeber alle fünf Sekunden ausgeführt wird.

  10. Lassen Sie den PageHead-Inhaltsbereich leer, da die Lösung dem <head>-Tag der Seite keine Inhalte hinzufügen muss.

Nachdem Sie den HTML-Code für die Seite ConvertStatus.aspx geschrieben haben, müssen Sie der CodeBehind-Seite ConvertStatus.aspx.CSV, die Word-Automatisierungsdienste verwendet, Visual C#-Code hinzufügen.

So fügen Sie der CodeBehind-Seite Code hinzu

  1. Erweitern Sie im Projektmappen-Explorer den Knoten ConvertItem.aspx, und doppelklicken Sie dann auf ConvertItem.aspx.cs.

  2. Fügen Sie eine using-Direktive für den Namespace hinzu, der das Word-Automatisierungsdienste-Objektmodell enthält, mit dem Sie Dokumentkonvertierungen ausführen.

    using Microsoft.Office.Word.Server.Conversions;
    
  3. Fügen Sie der Seite ConvertStatus.aspx einen Ereignishandler hinzu, der den Browser an den Quellspeicherort zurückleitet, wenn auf die Schaltfläche geklickt wird. Dazu fügen Sie dem <asp:Button>-Element folgenden Code hinzu.

    OnClick="btnReturn_Click"
    
  4. Fügen Sie anschließend der CodeBehind-Datei ConvertStatus.aspx.cs für die Seite den Ereigniscode hinzu.

    protected void btnReturn_Click(object sender, EventArgs e)
    {
        ReturnToLibrary();
    }
    
    private void ReturnToLibrary()
    {
        // Get the URL to go to from the query string, and redirect to there
        string url = Server.UrlDecode(Request.QueryString["url"]);
        Response.Redirect(url);
    }
    

    Der vorstehende Code ruft die Quell-URL aus der Abfragezeichenfolge ab und leitet zu diesem Speicherort um.

  5. Fügen Sie der Seite ConvertStatus.aspx einen Ereignishandler hinzu, der bei Ausführung des Zeitgebers (alle fünf Sekunden) den Status der Konvertierung überprüft. Dazu fügen Sie dem <asp:Timer>-Element folgenden Code hinzu.

    OnTick="timer_Tick"
    
  6. Fügen Sie anschließend der CodeBehind-Datei ConvertStatus.aspx.cs für die Seite den Ereigniscode hinzu.

    protected void timer_Tick(object sender, EventArgs e)
    {
        // Get the job ID and the site subscription ID
        Guid jobId = new Guid(Request.QueryString["jobId"]);
        Guid? siteSubscription = null;
        if(Site.SiteSubscription != null)
            siteSubscription = Site.SiteSubscription.Id;
    
        // Verify that the conversion is complete; if it is, refresh
        ConversionJobStatus status = new ConversionJobStatus("Word Automation Services", jobId, siteSubscription);
    
        if (status.Count == status.Succeeded)
        {
            // Success!
            ReturnToLibrary();
        }
        else if (status.Count == status.Failed)
        {
            // Conversion failed
            // Redirect to standard SharePoint error page
            ReadOnlyCollection<ConversionItemInfo> failedItems = status.GetItems(ItemTypes.Failed);
            Response.Redirect("/_layouts/Error.aspx?ErrorText=" + Server.UrlEncode(failedItems[0].ErrorMessage));
        }
        else if (status.Count == status.Canceled)
        {
            // Conversion was canceled
            // Redirect to standard SharePoint error page
            Response.Redirect("/_layouts/Error.aspx?ErrorText=The conversion was cancelled.");
        }
    
        // It is not finished. Keep waiting.
    }
    

    Der vorstehende Code ruft die Konvertierungsauftrags-ID aus der Abfragezeichenfolge ab und überprüft dann anhand dieser und der Abonnement-ID (falls vorhanden) den Status der Konvertierung mithilfe des ConversionJobStatus-Objekts.

    HinweisHinweis

    In diesem Beispiel wird angenommen, dass der Name der Dienstanwendung "Word Automation Services" lautet. Dies ist der Standardname bei Erstellung der Dienstanwendung mithilfe des Farmkonfigurations-Assistenten. Wenn Sie einen anderen Namen für die Dienstanwendung angegeben haben, verwenden Sie diesen stattdessen.

Sobald der Code den Status des Konvertierungsauftrags abgerufen hat, prüft er, ob das Konvertierungselement einen der folgenden Status meldet und führt eine entsprechende Aktion aus:

  1. Erfolgreich – Das Dokument wurde konvertiert. In diesem Fall leitet der Code den Browser zum Quellspeicherort für das Eingabedokument um.

  2. Fehler – Das Dokument wurde nicht konvertiert. Der Code ruft mithilfe der GetItems(ItemTypes)-Methode das ursprüngliche Konvertierungselement ab, liest die ErrorMessage-Eigenschaft, um die Ursache des Fehlers zu ermitteln und verwendet diese Informationen dann zum Umleiten auf die Standardfehlerseite.

  3. Abgebrochen – Die Dokumentkonvertierung wurde abgebrochen. In diesem Fall leitet der Code auf die Standardfehlerseite um.

Entspricht der Status des Konvertierungsauftrags nicht einem der genannten Status für Konvertierungsaufträge, kehrt der Code zurück und wartet weitere fünf Sekunden, bevor er den Status des Konvertierungsauftrags erneut prüft.

Siehe auch

Aufgaben

Schritt 1: Einrichten des Visual Studio 2010-Projekts für die ECB-Menüelement-Lösung

Schritt 2: Erstellen des ECB-Menüelements

Schritt 3: Erstellen einer Webanwendungsseite zum Starten von Konvertierungen

Schritt 5: Erstellen und Bereitstellen der ECB-Menü-Lösung

Konzepte

Exemplarische Vorgehensweise: Verwenden eines ECB-Menüelements zum Erstellen eines Konvertierungsauftrags