Bagikan melalui


ASP.NET Penyebaran Web menggunakan Visual Studio: Penyebaran Baris Perintah

oleh Tom Dykstra

Unduh Proyek Starter

Seri tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) aplikasi web ASP.NET ke Azure App Service Web Apps atau ke penyedia hosting pihak ketiga, dengan menggunakan Visual Studio 2012 atau Visual Studio 2010. Untuk informasi tentang seri ini, lihat tutorial pertama dalam seri ini.

Gambaran Umum

Tutorial ini menunjukkan kepada Anda cara memanggil alur penerbitan web Visual Studio dari baris perintah. Ini berguna untuk skenario di mana Anda ingin mengotomatiskan proses penyebaran alih-alih melakukannya secara manual di Visual Studio, biasanya dengan menggunakan sistem kontrol versi kode sumber.

Membuat perubahan untuk disebarkan

Saat ini halaman Tentang menampilkan kode templat.

Tentang halaman dengan kode templat

Anda akan menggantinya dengan kode yang menampilkan ringkasan pendaftaran siswa.

Buka halaman About.aspx , hapus semua markup di dalam MainContentContent elemen , dan sisipkan markup berikut ini di tempatnya:

<h2>Student Body Statistics</h2>
    <asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
        SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
    </asp:ObjectDataSource>
    <asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
        DataSourceID="StudentStatisticsObjectDataSource">
        <Columns>
            <asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
                ReadOnly="True" SortExpression="EnrollmentDate" />
            <asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
                SortExpression="StudentCount" />
        </Columns>
    </asp:GridView>

Jalankan proyek dan pilih halaman Tentang .

Tentang halaman

Sebarkan ke Uji dengan menggunakan baris perintah

Anda tidak akan menyebarkan perubahan database lain, jadi nonaktifkan penyebaran database dbDacFx untuk database aspnet-ContosoUniversity. Buka wizard Terbitkan Web , dan di masing-masing dari tiga profil penerbitan, kosongkan kotak centang Perbarui Database pada tab Pengaturan .

Di halaman Mulai Windows 8, cari Perintah Pengembang untuk VS2012.

Klik kanan ikon untuk Perintah Pengembang untuk VS2012 dan klik Jalankan sebagai administrator.

Masukkan perintah berikut di prompt perintah, mengganti jalur ke file solusi dengan jalur ke file solusi Anda:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test

MSBuild membangun solusi dan menyebarkannya ke lingkungan pengujian.

Output baris perintah

Buka browser dan buka http://localhost/ContosoUniversity, lalu klik halaman Tentang untuk memverifikasi bahwa penyebaran berhasil.

Jika Anda belum membuat siswa dalam pengujian, Anda akan melihat halaman kosong di bawah judul Statistik Badan Siswa . Buka halaman Siswa , klik Tambahkan Siswa, dan tambahkan beberapa siswa, lalu kembali ke halaman Tentang untuk melihat statistik siswa.

Cuplikan layar memperlihatkan Statistik Badan Siswa di halaman Tentang.

Opsi baris perintah kunci

Perintah yang Anda masukkan melewati jalur file solusi dan dua properti ke MSBuild:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true 
/p:PublishProfile=Test

Menyebarkan solusi versus menyebarkan proyek individual

Menentukan file solusi menyebabkan semua proyek dalam solusi dibangun. Jika Anda memiliki beberapa proyek web dalam solusi, perilaku MSBuild berikut ini berlaku:

  • Properti yang Anda tentukan pada baris perintah diteruskan ke setiap proyek. Oleh karena itu, setiap proyek web harus memiliki profil penerbitan dengan nama yang Anda tentukan. Jika Anda menentukan /p:PublishProfile=Test, setiap proyek web harus memiliki profil penerbitan bernama Uji.
  • Anda mungkin berhasil menerbitkan satu proyek ketika proyek lain bahkan tidak membangun. Untuk informasi selengkapnya, lihat alur stackoverflow MSBuild gagal dengan dua paket.

Jika Anda menentukan proyek individual alih-alih solusi, Anda harus menambahkan parameter yang menentukan versi Visual Studio. Jika Anda menggunakan Visual Studio 2012, baris perintah akan mirip dengan contoh berikut:

msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0

Nomor versi untuk Visual Studio 2010 adalah 10.0. Untuk informasi selengkapnya, lihat Kompatibilitas proyek Visual Studio dan VisualStudioVersion di blog Sayed Hashimi.

Menentukan profil penerbitan

Anda dapat menentukan profil penerbitan berdasarkan nama atau dengan jalur lengkap ke file .pubxml , seperti yang ditunjukkan dalam contoh berikut:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml

Metode penerbitan web yang didukung untuk penerbitan baris perintah

Tiga metode penerbitan didukung untuk penerbitan baris perintah:

  • MSDeploy - Terbitkan dengan menggunakan Web Deploy.
  • Package - Terbitkan dengan membuat Paket Web Deploy. Anda harus menginstal paket secara terpisah dari perintah MSBuild yang membuatnya.
  • FileSystem - Terbitkan dengan menyalin file ke folder tertentu.

Menentukan konfigurasi build dan platform

Konfigurasi build dan platform harus diatur di Visual Studio atau pada baris perintah. Profil penerbitan menyertakan properti yang diberi nama LastUsedBuildConfiguration dan LastUsedPlatform, tetapi Anda tidak dapat mengatur properti ini untuk menentukan bagaimana proyek dibangun. Untuk informasi selengkapnya, lihat MSBuild: cara mengatur properti konfigurasi di blog Sayed Hashimi.

Menyebarkan ke pentahapan

Untuk menyebarkan ke Azure, Anda harus menambahkan kata sandi ke baris perintah. Jika Anda menyimpan kata sandi di profil penerbitan di Visual Studio, kata sandi tersebut disimpan dalam formulir terenkripsi di file .pubxml.user Anda. File tersebut tidak diakses oleh MSBuild saat Anda melakukan penyebaran baris perintah, jadi Anda harus meneruskan kata sandi dalam parameter baris perintah.

  1. Salin kata sandi yang Anda butuhkan dari file .publishsettings yang Anda unduh sebelumnya untuk situs web penahapan. Kata sandi adalah nilai userPWD atribut untuk elemen Web Deploy publishProfile .

    Kata sandi Penyebaran Web

  2. Di halaman Mulai Windows 8, cari Perintah Pengembang untuk VS2012, dan klik ikon untuk membuka prompt perintah. (Anda tidak perlu membukanya sebagai administrator kali ini karena Anda tidak menyebarkan ke IIS di komputer lokal.)

  3. Masukkan perintah berikut di prompt perintah, ganti jalur ke file solusi dengan jalur ke file solusi Anda dan kata sandi dengan kata sandi Anda:

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    Perhatikan bahwa baris perintah ini menyertakan parameter tambahan: /p:AllowUntrustedCertificate=true. Karena tutorial ini sedang ditulis, AllowUntrustedCertificate properti harus diatur saat Anda menerbitkan ke Azure dari baris perintah. Ketika perbaikan untuk bug ini dirilis, Anda tidak memerlukan parameter tersebut.

  4. Buka browser dan buka URL situs penahapan Anda, lalu klik halaman Tentang untuk memverifikasi bahwa penyebaran berhasil.

    Seperti yang Anda lihat sebelumnya untuk lingkungan pengujian, Anda mungkin harus membuat beberapa siswa untuk melihat statistik di halaman Tentang .

Menyebarkan ke produksi

Proses untuk menyebarkan ke produksi mirip dengan proses penahapan.

  1. Salin kata sandi yang Anda butuhkan dari file .publishsettings yang Anda unduh sebelumnya untuk situs web produksi.

  2. Buka Perintah Pengembang untuk VS2012.

  3. Masukkan perintah berikut di prompt perintah, ganti jalur ke file solusi dengan jalur ke file solusi Anda dan kata sandi dengan kata sandi Anda:

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    Untuk situs produksi nyata, jika ada juga perubahan database, Anda biasanya akan menyalin file app_offline.htm ke situs sebelum penyebaran dan menghapusnya setelah penyebaran berhasil.

  4. Buka browser dan buka URL situs penahapan Anda, lalu klik halaman Tentang untuk memverifikasi bahwa penyebaran berhasil.

Ringkasan

Anda sekarang telah menyebarkan pembaruan aplikasi dengan menggunakan baris perintah.

Cuplikan layar memperlihatkan halaman Tentang yang menampilkan Statistik Badan Siswa.

Dalam tutorial berikutnya, Anda akan melihat contoh cara memperluas alur penerbitan web. Contohnya akan menunjukkan kepada Anda cara menyebarkan file yang tidak disertakan dalam proyek.