none
ASP.NET Setup & Deployment FAQ: Bagaimana cara memodifikasi web.config dalam Web Setup project menggunakan Custom Action?

    Diskusi Umum

  •  

    Web Setup project menyediakan keuntungan dengan menyalin file ke server. Dengan web setup project, installer secara otomatis akan menangani masalah ini melalui proses pendaftaran dan konfigurasi. Namun, terkadang, kita ingin tahu cara mengkonfigurasi ASP.NET Web Application, seperti versi dari ASP.NET, modifikasi web.config ketika menginstal aplikasi ASP.NET dengan installer di server.

    Jawabannya adalah Custom Action Web Setup yang menyediakan utilitas untuk mengkonfigurasi ASP.NET Web Application, seperti versi ASP.NET, modifikasi web.config ketika menginstal aplikasi ASP.NET dengan installer di server.

    FAQ ini menunjukkan bagaimana menggunakan Custom Action untuk memodifikasi bagian appSettings pada web.config selama instalasi di server:

    - Buat ASP.NET Web Application

    1.   Buka Visual Studio 2008 dan buatlah sebuah  ASP.NET Web Application dengan File -> New -> Project -> Pilih ASP.NET Web Application dari Visual C# Project types -> OK. Pada project ini kita namakan WebApplicationDemo.

    2.   Tambahkan appSettings berikut ini pada web.config file. Ini berfungsi untuk menyimpan data input dari customer ketika menginstall aplikasi ASP.NET dengan installer pada server:

              <appSettings>

                      <add key="UserData" value="The Value"/>

              </appSettings>

    3.   Tambahkan kode berikut pada PageLoad event o Default.aspx.cs file:       

                // Get the web.config of current application

                Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");

                AppSettingsSection setting = config.AppSettings;

                // Retrieve the value from AppSettings Section with key "UserData"

                string strResult = setting.Settings["UserData"].Value;

    Response.Write("AppSettings Section with the value of key \"UserData\" is " + strResult);

     

    - Buat Web Setup Project

    1.   Klik kanan solution dari Solution Window dan pilih Add -> New Project -> pilih Web Setup Project dari Setup and Deployment dibawah Other Project Types -> OK. Pada project ini kita namakant WebSetupDemo.

    2.   Klik kanan WebSetupDemo dari Solution Window lalu pilih Add -> Project Output -> pilih WebApplicationDemo dari Project dropdown list -> pilih Primary output and Content Files -> OK.

    - Buat Custom Action Class Library

    1.  Klik kanan solution dari Solution Window dan pilih Add -> New Project -> Class Library dari Visual C# Project types -> OK. Kita namakan CustomActionDemo.

    2.  Hapus default Class1.cs dan klik kanan CustomActionDemo dari Solution Window lalu pilih Add -> New Item -> pilih Installer Class -> OK. Kita namakan CustomActionDemo.

    3.  Tambahkan kode berikut pada CustomActionDemo.Designer.cs

           /// <summary>

            ///  Override bass install class's Install method

            /// </summary>

            /// <param name="stateSaver"></param>

            public override void Install(System.Collections.IDictionary stateSaver)

            {

                base.Install(stateSaver);

     

                // Get the web application's virtual directory on target server

                string targetVDir = Context.Parameters["targetvdir"];

                // Get the value that customer inputs in Wizard while installing

                string strNewValue = Context.Parameters["strnewvalue"];

     

                // Get web.config

                Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/" + targetVDir);

                // Retrieve AppSettings Section

                AppSettingsSection setting = config.AppSettings;

                // Set Settings with key "UserData"

           setting.Settings["UserData"].Value = strNewValue;

                // Save web.config

                config.Save();

     

                            }

     

    - Konfigurasikan Web Setup Works dengan Custom Action

    1.  Klik kanan WebSetupDemo dari Solution Window lalu pilih Add -> Project Output -> pilih CustomActionDemo dari Project dropdown list -> pilih Primary output -> OK.

    2.  Klik kanan WebSetupDemo dari Solution Window lalu pilih View -> Custom Actions, klik kanan Install folder -> pilih Add Custom Action -> pilih Primary output dari CustomActionDemo dibawah Web Application Folder -> OK.

    3.  Klik kanan Primary output dari CustomActionDemo dan pilih Properties Window untuk masuk dalam Properties Window, lalu masukkan script berikut pada CustomActionData attribute:

    /targetvdir="[TARGETVDIR]" /strnewvalue="[STRNEWVALUE]"

    4.  Klik kanan WebSetupDemo dari Solution Window lalu pilih View -> User Interface, klik kanan Start dibawah Install -> pilih Add Dialog -> pilih Textboxs (A) -> OK. Klik kanan Textbox (A) -> klik Move Up sebelum Confirm Installation interface. 

    5.  Klik kanan Textbox (A) untuk masuk dalam Properties Window, dan ubah BannerText menjadi “Modify AppSetting Section”, BodyText menjadi “Input the value for AppSetting Section”, Edit1Label menjadi “Value:” dan ketik STRNEWVALUE dalam Edit1Property attribute. Setelah itu, atur Edit2Visible menjadi false.

    Sekarang, klik kanan WebSetupDemo dari Solution dan pilih Build. Setelah sukses dalam proses Build, klik kanan WebSetupDemo dan pilih Install untuk proses instalasi. Pada wizard box ketiga dari installation, terdapat sebuah Textbox untuk input. Setelah proses instalasi selesai, cari Default.aspx dari web application yang sudah terinstal pada IIS dan anda akan melihat value yang sudah anda masukkan dalam wizard pada halaman default.aspx. 

    Untuk informasi lengkap mengenai Custom Action, kunjungi website berikut: http://weblogs.asp.net/scottgu/archive/2007/06/15/tip-trick-creating-packaged-asp-net-setup-programs-with-vs-2005.aspx


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    27 Februari 2012 6:35
    Moderator