Exemplarische Vorgehensweise: Umleiten einer Anwendung an einen anderen Webdienst während der Installation

Diese exemplarische Vorgehensweise demonstriert die Erstellung einer Webanwendung, die unter Verwendung der URL Behavior-Eigenschaft, einer Installerklasse und eines Websetup-Projekts an einen anderen Webdienst umgeleitet werden kann. Dies ist nützlich, wenn Sie einen Webdienst während der Entwicklung lokal als Ziel und eine Produktionsversion des Webdiensts bei der Bereitstellung der Anwendung verwenden möchten.

Tipp

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Erstellen des Webanwendungs-Projekts

Der erste Schritt besteht im Erstellen eines ASP.NET-Webanwendungsprojekts, das einen Webverweis zu einem Webdienst enthält.

So erstellen Sie das Projekt

  • Erstellen Sie eine Webanwendung mit einem Webverweis zu einem Webdienst. Für diese exemplarische Vorgehensweise genügt ein Webverweis auf einen beliebigen gültigen Webdienst.

Hinzufügen einer Installerklasse

Installerklassen, auch als Installationskomponenten bezeichnet, sind .NET Framework-Klassen, die während der Installation als benutzerdefinierte Aktionen aufgerufen werden. In diesem Fall wird der Projektmappe ein Klassenbibliotheks-Projekt hinzugefügt. In diesem Klassenbibliotheks-Projekt erstellen Sie eine Installerklasse und überschreiben ihre Install-Methode, wobei Sie Code zum Ändern der CONFIG-Datei der Webanwendung hinzufügen.

So erstellen Sie ein Klassenbibliotheks-Projekt

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

  2. Wählen Sie im Dialogfeld Neues Projekt hinzufügen im Visual Basic-Knoten die Option Klassenbibliothek aus.

  3. Nennen Sie das Projekt InstallerClassLibrary.

So fügen Sie eine Installerklasse hinzu und implementieren diese

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den InstallerClassLibrary-Projektknoten, klicken Sie auf Hinzufügen, und klicken Sie dann auf Klasse.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Installerklasse, und ändern Sie den Namen in WebServiceInstaller.vb.

    Wenn Sie auf Hinzufügen klicken, wird die Klasse zum Projekt hinzugefügt und der Designer für die Installerklasse geöffnet.

  3. Doppelklicken Sie auf den Designer, um den Code-Editor zu öffnen.

  4. Fügen Sie in WebServiceInstaller.vb den folgenden Code am Ende des Moduls Installerklasse hinzu (genau oberhalb der End Class-Deklaration), mit dem die Install-Methode implementiert wird:

    Public Overrides Sub Install(
            ByVal stateSaver As System.Collections.IDictionary)
    
        ' Gets the parameter passed across in the CustomActionData.
        Dim install_log As New System.IO.StreamWriter("Installation.log")
        install_log.AutoFlush = True
    
        Try
            Dim providedName = Me.Context.Parameters.Item("ServerName")
            Dim svcName = Me.Context.Parameters.Item("ServiceName")
    
            install_log.WriteLine("Starting Edit of the config file")
    
            If providedName = "" OrElse svcName = "" Then
                Throw New InstallException("No arguments specified")
            End If
    
            ' Uses reflection to find the location of the config file.
            Dim strConfigLoc =
                System.Reflection.Assembly.GetExecutingAssembly().Location
    
            Dim strTemp = strConfigLoc
            strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) -
              strTemp.LastIndexOf("\"))
            strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) -
              strTemp.LastIndexOf("\"))
    
            Dim fInfo As New System.IO.FileInfo(strTemp & "\web.config")
    
            install_log.WriteLine("File info: " & strTemp)
    
            If Not fInfo.Exists Then
                Throw New InstallException("Missing config file")
            End If
    
            ' Loads the config file into the XML DOM.
            ' Loads the config file into the XML DOM.
            Dim xmlDoc = XDocument.Load(fInfo.FullName)
    
            ' Finds the right node and change it to the new value.
            Dim foundIt As Boolean = False
            For Each node In xmlDoc.<configuration>.<appSettings>.<add>
                If node.@key = "servername.service" Then
                    ' Note that "Service1.asmx" should be replaced with the
                    ' actual name of the XML Web service file.
                    node.@value = "http://" &
                        providedName & "/" & svcName & "/Service1.asmx"
                    foundIt = True
                End If
            Next node
    
            If Not foundIt Then
                Throw New InstallException("Config file did not contain a ServerName section")
            End If
    
            ' Writes out the new config file.
            xmlDoc.Save(fInfo.FullName)
    
        Finally
            install_log.WriteLine("Ending edit of config file")
            install_log.Close()
        End Try
    
    End Sub
    

    Mit dem oben genannten Code wird zunächst eine Installationsprotokolldatei erstellt, in der der Fortschritt der benutzerdefinierten Aktion aufgezeichnet wird. Der System.Reflection-Namespace wird zum Suchen der zu installierenden Assembly sowie der zugehörigen CONFIG-Datei verwendet. Das XML-Dokumentmodell wird verwendet, um die CONFIG-Datei bis zum Abschnitt appSettings zu durchlaufen. Wenn der Schlüssel servername.service gefunden wird, wird der zugehörige Wert so geändert, dass die übergebenen Parameter aufgenommen werden. Dadurch wird die Anwendung umgeleitet und der neue Webdienst verwendet.

  5. Doppelklicken Sie im Projektmappen-Explorer auf die Datei Web.config, um sie zu öffnen.

  6. Kopieren Sie den Wert des Schlüssels für den Webdienst in den Abschnitt appSettings . Der Schlüssel weist das Format servername.service auf, wobei servername der Server ist, auf dem sich der Webdienst befindet, und service der Name des Webdiensts ist.

  7. Öffnen Sie das Modul Installerklasse im Code-Editor, und ersetzen Sie den Text "servername.service" durch den im vorherigen Schritt kopierten Wert.

Hinzufügen eines Websetup-Projekts

Setup-Projekte werden zum Erstellen eines Installationsprogramms für die Anwendung verwendet. Setup-Projekte basieren auf Windows Installer-Technologie. Sie umfassen u. a. Features zum Ausführen von benutzerdefinierten Aktionen bei der Installation und Anpassen der Benutzeroberfläche für die Installation. Weitere Informationen über Setup-Projekte finden Sie unter Bereitstellen von Anwendungen und Komponenten.

So fügen Sie ein Websetup-Projekt hinzu

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

  2. Erweitern Sie im Dialogfeld Neues Projekt hinzufügen im Bereich Projekttypen den Knoten Andere Projekttypen, und wählen Sie den Knoten Setup- und Bereitstellungsprojekte aus.

    Wählen Sie im Bereich Vorlagen die Option Websetup-Projekt aus. Geben Sie im Feld Name den Projektnamen WebAppSetup ein.

    Wenn Sie auf OK klicken, wird das Projekt zur Projektmappe hinzugefügt, und der Dateisystem-Editor wird geöffnet.

  3. Wählen Sie im Eigenschaftenfenster die ProductName-Eigenschaft aus, und legen Sie diese auf den Namen der Webanwendung fest.

  4. Wählen Sie im Dateisystem-Editor den Webanwendungsordner aus.

  5. Zeigen Sie im Menü Aktion auf Hinzufügen, und klicken Sie auf Projektausgabe.

  6. Wählen Sie im Dialogfeld Projektausgabegruppe hinzufügen aus der Dropdownliste Projekt den Eintrag InstallerClassLibrary aus, und wählen Sie dann Primäre Ausgabe aus.

    Wenn Sie auf OK klicken, wird dem Websetup-Projekt die primäre Ausgabe von InstallerClassLibrary hinzugefügt.

Hinzufügen einer benutzerdefinierten Aktion

Mit benutzerdefinierten Aktionen wird die Ausführung eines Codes nach Abschluss der Installation möglich. Dadurch lassen sich Aktionen ausführen, die nicht während der Installation verarbeitet werden können. Der Code für eine benutzerdefinierte Aktion kann in einer DLL-, EXE-, Skript- oder Assemblydatei enthalten sein. Weitere Informationen zu benutzerdefinierten Aktionen finden Sie unter Verwalten von benutzerdefinierten Aktionen bei der Bereitstellung.

So fügen Sie die Installerklasse als benutzerdefinierte Aktion hinzu

  1. Wählen Sie im Projektmappen-Explorer das Projekt WebAppSetup aus.

  2. Klicken Sie im Menü Ansicht auf Editor, und klicken Sie anschließend auf Benutzerdefinierte Aktionen.

    Der Editor für benutzerdefinierte Aktionen wird angezeigt.

  3. Wählen Sie im Editor für benutzerdefinierte Aktionen den Knoten Installieren aus.

  4. Klicken Sie im Menü Aktion auf Benutzerdefinierte Aktion hinzufügen.

  5. Doppelklicken Sie auf den Webanwendungsordner, wählen Sie dann Primäre Ausgabe von InstallerClassLibrary (Aktiv) aus.

  6. Stellen Sie im Eigenschaftenfenster sicher, dass die InstallerClass-Eigenschaft auf True festgelegt ist.

  7. Wählen Sie die CustomActionData-Eigenschaft, und geben Sie den folgenden Text ein: /ServerName=[EDITA1] /ServiceName=[EDITA2]

    Die CustomActionData-Eigenschaft umfasst zwei durch ein Leerzeichen voneinander getrennte Parameter, die an die benutzerdefinierte Aktion übergeben werden.

Hinzufügen eines Dialogfelds

Während der Installation werden Benutzeroberflächendialogfelder zum Erfassen von Informationen zum Benutzer angezeigt. Weitere Informationen zu Dialogen der Benutzeroberfläche finden Sie unter Verwalten der Benutzeroberfläche bei der Bereitstellung.

So fügen Sie ein Benutzeroberflächendialogfeld hinzu

  1. Wählen Sie im Projektmappen-Explorer das Setup-Projekt aus.

  2. Zeigen Sie im Menü Ansicht auf Editor, und klicken Sie anschließend auf Benutzeroberfläche.

  3. Wählen Sie im Benutzeroberflächen-Editor unter Installieren den Knoten Start aus.

  4. Klicken Sie im Menü Aktion auf Dialogfeld hinzufügen.

  5. Wählen Sie im Dialogfeld Dialogfeld hinzufügen das Dialogfeld Textfelder (A) aus, und klicken Sie auf OK.

  6. Wählen Sie im Menü Aktion den Eintrag Nach oben so oft aus, bis sich das Dialogfeld Textfelder (A) über dem Dialogfeld Installationsadresse befindet.

  7. Legen Sie im Eigenschaftenfenster die folgenden Eigenschaften fest:

    Eigenschaft

    Wert

    BannerText

    Geben Sie den Namen des Servers und des Diensts ein.

    Edit1Label

    Servername:

    Edit1Value

    Localhost

    HinweisHinweis
    Gibt einen Standardserver an.Sie können hier einen eigenen Standardservernamen eingeben.

    Edit2Label

    Dienstname:

    Edit2Value

    <Name des Diensts>

    Edit3Visible

    False

    Edit4Visible

    False

    Beachten Sie, dass die Edit1Property-Eigenschaft auf "EDITA1" und die Edit2Property-Eigenschaft auf "EDITA2" festgelegt ist. Diese beiden Werte entsprechen den Werten, die Sie im Editor für benutzerdefinierte Aktionen in die CustomActionData-Eigenschaft eingegeben haben. Wenn der Benutzer während der Installation Text in diese Bearbeitungssteuerelemente eingibt, werden diese Werte automatisch mithilfe der CustomActionData-Eigenschaft weitergegeben.

Erstellen und Bereitstellen der Anwendung

Im letzten Schritt erfolgt die Erstellung des Setup-Projekts, damit das Installationsprogramm erstellt werden kann. Dann wird die Anwendung auf dem Zielserver installiert.

So erstellen Sie das Setup-Projekt

  • Wählen Sie im Menü Erstellen die Option Projektname erstellen aus, wobei Projektname der Name des Setup-Projekts ist.

So geben Sie die Anwendung an einen Webserver auf Ihrem Entwicklungscomputer weiter

  1. Wählen Sie im Projektmappen-Explorer das Setup-Projekt aus.

  2. Klicken Sie im Menü Projekt auf Installieren.

So geben Sie die Anwendung an einen Webserver auf einem anderen Computer weiter

  1. Navigieren Sie in Windows Explorer zu dem Projektverzeichnis, und suchen Sie das erstellte Installationsprogramm. Der Standardpfad ist \Dokumente und Einstellungen \Ihr Anmeldename\Eigene Dateien\Visual Studio Projects \Setup-Projektname\Projektkonfiguration\Produktname.msi. Die standardmäßige Projektkonfiguration ist Debug.

  2. Kopieren Sie die MSI-Datei und alle anderen Dateien und Unterverzeichnisse in das Verzeichnis auf dem Webservercomputer.

  3. Doppelklicken Sie auf dem Webservercomputer auf die Datei Setup.exe, um den Installer auszuführen.

Siehe auch

Weitere Ressourcen

Bereitstellen von Anwendungen und Komponenten

Verwalten von benutzerdefinierten Aktionen bei der Bereitstellung

Verwalten der Benutzeroberfläche bei der Bereitstellung