Podrobné pokyny: Přesměrování aplikace na jinou webovou službu při instalaci
Tento návod ukazuje, jak vytvořit webovou aplikaci, která může být přesměrována na jinou webovou službu pomocí vlastnosti URL Behavior, instalační třídy a projektu instalace webu. To je užitečné, potřebujete-li se během vývoje zaměřit na místní webovou službu a chcete-li při nasazení aplikace použít produkční verzi webové služby.
Poznámka
Ve vašem počítači se pro některé z prvků uživatelského rozhraní aplikace Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedena v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Visual Studio, nastavení.
Vytvoření projektu webové aplikace.
První krok je vytvořit projekt webové aplikace ASP.NET, který obsahuje odkaz na webovou službu.
Vytvoření nového projektu
- Vytvořte webovou aplikaci obsahující odkaz na webovou službu. Pro tento návod postačí webový odkaz na jakoukoli platnou webovou službu.
Přidání instalační třídy
Instalační třídy, označované také jako instalační komponenty, jsou třídy .NET Framework vyvolané jako vlastní akce během instalace. V tomto případě do řešení přidáte projekt knihovny tříd. V tomto projektu knihovny tříd vytvoříte instalační třídu a přepíšete její metodu Install, kde přidáte kód upravující soubor .config webové aplikace.
Vytvoření projektu knihovny tříd
Klikněte pravým tlačítkem myši na uzel řešení v okně Průzkumník řešení, klikněte na Přidat a pak na Nový projekt.
V dialogovém okně Přidat nový projekt v uzlu Visual Basic vyberte Knihovna tříd.
Projekt pojmenuje InstallerClassLibrary.
Přidání a implementace instalační třídy
Klikněte pravým tlačítkem myši na uzel projektu InstallerClassLibrary v okně Průzkumník řešení a klikněte na Přidat a pak na Třída.
V dialogovém okně Přidat novou položku vyberte Instalační třída a změňte Název na WebServiceInstaller.vb.
Po kliknutí na tlačítko Přidat bude třída přidána do projektu a otevře se návrhář pro instalační třídu.
Dvakrát klikněte na plochu návrháře, čímž se otevře editor kódu.
V WebServiceInstaller.vb přidejte následující kód do dolní části modulu instalační třídy (hned nad deklarací konce třídy); tento kód implementuje metodu Install:
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
Výše uvedený kód nejprve vytvoří soubor protokolu instalace, který bude zaznamenávat průběh vlastní akce. Obor názvů System.Reflection se používá k nalezení instalovaného sestavení a k nalezení přidruženého .config souboru. K procházení .config souboru, dokud není nalezen oddíl appSettings , je použit model XML dokumentu. Když je klíč servername.service nalezen, je změněna jeho přidružené hodnota tak, aby zahrnovala předané parametry, které přesměrují aplikaci na novou webovou službu.
V okně Průzkumník řešení dvakrát klikněte na soubor Web.config k jeho otevření.
Zkopírujte hodnotu klíče webové služby v oddíle appSettings . Klíč je ve tvaru servername.service, kde servername je server, na kterém je umístěna webová služba a service je název webové služby.
V editoru kódu otevřete modul instalační třídy a nahraďte text "servername.service" hodnotou, kterou jste zkopírovali v předchozím kroku.
Přidání projektu instalace webu
Projekty instalace se používají k vytvoření instalačního programu pro aplikaci. Projekty instalace, které jsou založeny na technologii Instalační služba systému Windows, zahrnují funkce, jako je například možnost spustit vlastní akce během instalace a možnost přizpůsobení uživatelského rozhraní instalace. Další informace o projektech instalace naleznete v tématu Nasazování aplikací a součástí.
Přidání projektu instalace webu
Klikněte pravým tlačítkem myši na uzel řešení v okně Průzkumník řešení, klikněte na Přidat a pak na Nový projekt.
V dialogovém okně Přidat nový projekt v podokně Typy projektů rozbalte uzel Ostatní typy projektů a vyberte uzel Projekty instalace a nasazení.
V podokně Šablony vyberte Projekt instalace webu. V poli Název pojmenujte projekt jako WebAppSetup.
Po kliknutí na tlačítko OK bude projekt přidán do řešení a otevře se Editor systému souborů.
V okně Vlastnosti vyberte Vlastnost ProductName a nastavte ho na název webové aplikace.
V editoru Editor systému souborů vyberte Složka webové aplikace.
V nabídce Akce ukažte na Přidat a potom klikněte na Výstup projektu.
V dialogovém okně Přidat výstupní skupinu projektu vyberte InstallerClassLibrary z rozevíracího seznamu Projekt; pak vyberte Primární výstup.
Po kliknutí na tlačítko OK bude primární výstup z InstallerClassLibrary přidán do projektu instalace webu.
Přidání vlastní akce
Vlastní akce se používají ke spuštění kódu na konci instalace za účelem provedení akcí, které v průběhu instalace nelze zpracovat. Kód pro vlastní akce může být obsažen v souborech .dll, .exe, skriptu nebo sestavení. Další informace o vlastních akcích naleznete v tématu Správa vlastních akcí při nasazení.
Přidání instalační třídy jako vlastní akce
V okně Průzkumník řešení vyberte projekt WebAppSetup.
V nabídce Zobrazení klikněte na Editor a pak na Vlastní akce.
Otevře se Editor vlastních akcí.
V okně Editor vlastních akcí vyberte uzel Instalovat.
V menu Akce zvolte Přidat vlastní akci.
Dvakrát klikněte na Složka webové aplikace a potom vyberte Primary output from InstallerClassLibrary (Active).
V okně Vlastnosti se ujistěte, že vlastnost InstallerClass je nastavena na True.
Vyberte vlastnost CustomActionData a zadejte následující text: /ServerName=[EDITA1] /ServiceName=[EDITA2]
Vlastnost CustomActionData poskytuje dva parametry oddělené mezerou, které jsou předány do vlastní akce.
Přidání dialogového okna
Během instalace jsou zobrazeny dialogová okna uživatelského rozhraní ke shromaždění informací od uživatele. Další informace o dialozích uživatelského rozhraní naleznete v tématu Správa uživatelského rozhraní při nasazení.
Přidání vlastního dialogového okna uživatelského rozhraní
V okně Průzkumník řešení vyberte projekt instalace.
V nabídce Zobrazit přejděte na Editor a klikněte na Uživatelské rozhraní.
V okně Editor uživatelského rozhraní vyberte uzel Spustit pod uzlem Instalovat.
V nabídce Akce klikněte na Přidat dialog.
V dialogovém okně Přidat dialog zvolte dialog Textová pole (A) a klikněte na tlačítko OK.
V nabídce Akce zvolte Přesunout nahoru a opakujte to, dokud není dialog Textová pole (A) umístěn nad dialogem Installation Address.
V okně Vlastnosti nastavte následující vlastnosti:
Vlastnost
Hodnota
BannerText
Zadejte název serveru a název služby
Edit1Label
Název serveru:
Edit1Value
Localhost
Poznámka
Tato hodnota určuje výchozí server.Můžete zde zadat vlastní název výchozího serveru.Edit2Label
Název služby:
Edit2Value
<název služby>
Edit3Visible
False
Edit4Visible
False
Všimněte si, že vlastnost Edit1Property je nastavena na "EDITA1" a vlastnost Edit2Property je nastavena na "EDITA2". Tyto hodnoty odpovídají hodnotám zadaným ve vlastnosti CustomActionData v editoru vlastních akcí. Když uživatel během instalace zadá text do těchto ovládacích prvků pro úpravy, pak jsou tyto hodnoty automaticky předány ve formě vlastnosti CustomActionData.
Sestavení a nasazení aplikace
Posledním krokem je sestavení projektu instalace k vytvoření instalačního programu a poté instalace aplikace na cílový server.
Sestavení projekt instalace
- V nabídce Sestavení zvolte Sestavit název_projektu, kde název_projektu je název projektu instalace.
Nasazení aplikace na webový server vývojového počítače
V okně Průzkumník řešení vyberte projekt instalace.
V nabídce Projekt klikněte na Instalovat.
Nasazení aplikace na webový server jiného počítač
V aplikaci Průzkumník Windows přejděte do adresáře s vaším projektem a najděte sestavený instalační program. Výchozí cesta je \Documents and Settings\přihlašovací_jméno\Dokumenty\Visual Studio Projects\název_projektu_instalace\konfigurace_projektu\název_produktu.msi. Výchozí hodnotou konfigurace_projektu je Ladit.
Zkopírujte .msi soubor a všechny další soubory a podadresáře v adresáři do počítače webového serveru.
Na počítači webového serveru dvakrát klikněte na soubor Setup.exe, čímž spustíte instalační program.
Viz také
Další zdroje
Nasazování aplikací a součástí