Sejak adanya ASP.NET 5 hit RC1 sekitar November lalu , semakin banyak orang yang melihat menggunakan aplikasi ini.Berjalan sebagai aplikasi sekedar sebagai demo atau percobaan. Pastinya kita pikiran kita akan mengarah pada hosting disuatu tempat dan itu adalah IIS. Saya baru-baru ini telah melalui beberapa kesulitan mendapatkan itu semua untuk bekerja, jadi saya pikir mungkin hal ini berguna untuk dokumen dan menyoroti beberapa langkah, yang diharapkan akan menghemat sedikit waktu Anda.
Menyesuaikan aplikasi
Agar dapat berjalan di IIS, aplikasi Anda perlu menyertakan Microsoft.AspNet.IISPlatformHandler paket. Saat ini versi 1.0.0-rc1-final yang harus tersedia dan ditambahkan sebagai syarat untuk project.json Anda.
Kemudian anda harus menambahkan platform handler middleware dengan metode Configure pada Startup class:
1 2 |
1 app.UseIISPlatformHandler(); |
Jika anda menggunakan versi terbaru Template ASP.NET 5 (RC1). Maka ASP.NET 5 Web Application template, maka ASP.NET 5 Web Application template sudah ada.Yang sebagai referensi paket Microsoft.AspNet.IISPlatformHandler dan bahkan memiliki garis di atas kode di kelas Startup secara default.
Menampilkan Aplikasi
Pertama-tama Anda perlu untuk menerbitkan aplikasi Anda. Jika Anda benar-benar sekolah tua, Anda mungkin ingin melakukannya dari Visual Studio dan klasik “Publikasikan” dialog, tetapi itu tidak akan melakukan apa-apa magis – semua itu akan lakukan adalah hanya memanggil melalui command line dnu tool.
Pertama dari apa yang anda perlukan untuk menerbitkan aplikasi anda .ka anda benar benar serius , Anda mungkin ingin melakukannya dari Visual Studio and its classic dengan menerbitkn dialognya. Jadi sebagai gantinya, Anda dapat memanggil dari folder aplikasi web Anda (Anda juga dapat melewati jalur untuk proyek aplikasi web jika Anda ingin memanggil dnu dari mana saja).
1 2 |
1 dnu publish --runtime active |
Perintah ini akan menerbitkan proyek anda dan menyertakan waktu yang saat ini aktif berjalan . Anda dapat dengan jelas termasuk juga runtime tertentu jika itu merupakan tujuan anda, oleh passign namanya. Dalam menerbitkan perintah ini banyak opsi-opsi lain seperti misalnya menetapkan source inclusion atau out path.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
λ dnu publish --help Usage: dnu publish [arguments] [options] Arguments: [project] Path to project, default is current directory Options: -o|--out <PATH> Where does it go --configuration <CONFIGURATION> The configuration to use for deployment (Debug|Release|{Custom}) --no-source Compiles the source files into NuGet packages --framework Name of the frameworks to include. --iis-command Overrides the command name to use in the web.config for the httpPlatformHandler. The default is web. --runtime <RUNTIME> Name or full path of the runtime folder to include, or "active" for current runtime on PATH --native Build and include native images. User must provide targeted CoreCLR runtime versions along with this option. --include-symbols Include symbols in output bundle --wwwroot <NAME> Name of public folder in the project directory --wwwroot-out <NAME> Name of public folder in the output, can be used only when the '--wwwroot' option or 'webroot' in project.json is specified --quiet Do not show output such as source/destination of published files -?|-h|--help Show help information |
Secara default, output path is bin/output dalam folder yang sama seperti aplikasi web anda. Output dapat xcopied ke server seperti itu.
Sumber yang diterbitkan harus memiliki struktur berikut:
Di dalam folder approot akan ada web.cmd file yang dapat digunakan untuk memulai app. Anda juga dapat memulainya dengan sekedar mendapatkan ke wwwroot dan memanggil dnx web. Tentu saja IIS tidak mengetahui apa pun tentang semua ini, maka anda perlu tambahan IIS untuk setelan memahami proses eksternal DNX .
Setting IIS
Prasyarat dalam IIS adalah bahwa modul HttpPlatformHandler perlu diinstal (minimal versi 1,2). Komponen ini bukan khas ASP.NET 5 – ia hanya memungkinkan manajemen proses untuk proses eksternal yang mendengarkan permintaan HTTP dan permintaan mengskalakan ke dalamnya; dalam hal ini akan dnx.exe tetapi mungkin juga ada sesuatu seperti node.exe. Anda dapat menginstal pengendali terbaru menggunakan direct installer atau WebPI dari IIS situs download di sini.
Setelah anda telah menerbitkan aplikasi ASP.NET 5 , anda dapat melanjutkan untuk menyetel IIS.
Buat aplikasi baru, dan setel .NET CLR versi aplikasi pada ruangan untuk Tidak Ada kode yang dikelola. Kita akan memanggil dnx.exe untuk memulai aplikasi anda, dan bukannya mengandalkan pada proses classic w3wp.
Point website anda ke folder wwwroot dalam menerbitkan output Lokasi: – atau di mana pun anda menyalinnya. Jika Anda menjalankan application pool dengan menggunakan application pool identity, anda harus pastikan identitasnya bahwa IIS_IUSRS mempunyai akses ke folder penerbitan anda.
wwwroot memiliki web.config di dalam file yang harus pada titik ini terlihat seperti ini:
1 2 3 4 5 6 7 8 |
<configuration> <system.webServer> <handlers> <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform> </system.webServer> </configuration> |
Anda mungkin ingin menyetel stdoutLogEnabled=”false” untuk segera mendapatkan kesalahan-kesalahan, biasanya ditulis untuk stdout , dari proses tersembunyi, untuk diarahkan kembali ke file log.
Resolving errors
Salah satu kemungkinan yang anda HTTP Error 500.19:
ini karena global config level, system.webServer/handlers yang terkunci. Untuk membukanya, pergi ke IIS Manager pilih server root di kiri navigation tree lalu pilih “Configuration Editor” > type system.webServer/handlers pilih dalam bagian dropdown dan tekan enter. Selanjutnya, pilih “unlock section” dari panel.
masalah selanjutnya yang mungkin Anda hadapi adalah bahwa Anda melihat halaman kosong, yang tampaknya loading selamanya. Jika itu yang terjadi periksa folder log di bawah jalan didefinisikan dalam web.config.
besar kemungkinan adalah bahwa perintah dnx tidak dikenali. Alasannya adalah bahwa pengguna digunakan untuk menjalankan proses IIS tidak ada di PATH. Untuk memperbaiki hal ini, anda dapat melakukan beberapa hal:
- Ubah aplikasi ruangan ke pengguna DNX pada PATH (yaitu akun pengguna anda sendiri)
- Menambahkan environment variables DNX sebagai variabel sistem
- DNX_halaman utama, harus menunjuk ke folder DNX anda, for me it’s , C:\Users\filip\.dnx
- DNX_Paket, harus menunjuk ke folder paket DNX anda, for me it’s , C:\Users\filip\.dnx\
- DNX paket_PATH, harus menunjuk ke file DNVM anda cmd, for me it’s, C:\Users\filip\.dnx\bin\dnvm.cmd
Jika anda memilih pendekatan ini, anda harus memastikan bahwa IIS_IUSRS mempunyai akses ke semua folder . Catatan bahwa pada IIS 10 anda juga dapat mengatur environment variables khusus untuk application pool.
Daripada menggunakan …\approot\web.cmd untuk memulai aplikasi anda, anda juga dapat menggunakan hardcode path untuk dnx dalam atribut processPath dari httpPlatform di web.config. Jika anda melakukannya, anda juga perlu menambahkan web argument dalam arguments attribute.
Akhirnya, mungkin ada beberapa masalah lain tidak disebutkan di sini, bahwa anda dapat mengenali melalui file log. Misalnya, mungkin anda disediakan sebuah jalur khusus ke dnx.exe tetapi tidak disediakan arguments (“web”). Tipe kesalahan ini hanya akan muncul dalam log karena penggunaan yang membantu untuk dnx.
Secara keseluruhan, saya mencoba proses ini pada IIS 7.5, IIS 8 dan IIS 10 – dan pada akhirnya ia berhasil semua.
Alasan Memilih Kami Sebagai Partner ASP.NET Hosting Anda!
Server dan Network yang Handal
Control Panel yang User-Friendly
Pengalaman di bidang ASP.NET hosting, terutama Windows Hosting selama bertahun-tahun
Teknologi ASP.NET Hosting paling mutakhir
Standar security yang amat tinggi
JaringanHosting.com adalah provider ASP.NET dan Windows hosting No #1 di Indonesia. Web Hosting kami mendapatkan Microsoft Spotlight Award dari Microsoft dan ini berdasarkan pada beberapa persyaratan utama, yaitu: WebMatrix, WebDeploy, Visual Studio 2015, ASP.NET 4.6, ASP.NET MVC 6, Silverlight 5 and Visual Studio Lightswitch.