Bagikan melalui


ASP.NET Penyebaran Web menggunakan Visual Studio: Pemecahan Masalah

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.

Halaman ini menjelaskan beberapa masalah umum yang mungkin muncul saat Anda menyebarkan aplikasi web ASP.NET dengan menggunakan Visual Studio. Untuk masing-masing, satu atau beberapa kemungkinan penyebab dan solusi yang sesuai disediakan.

Skenario yang ditampilkan berlaku untuk penyedia hosting Azure dan pihak ketiga. Untuk informasi selengkapnya tentang pemecahan masalah aplikasi web di Azure App Service, lihat sumber daya berikut ini:

Kesalahan Server dalam Aplikasi '/' - Pengaturan Kesalahan Kustom Saat Ini Mencegah Detail Kesalahan Dilihat Dari Jarak Jauh

Skenario

Setelah menyebarkan situs ke host jarak jauh, Anda mendapatkan pesan kesalahan yang menyebutkan pengaturan customErrors dalam file Web.config tetapi tidak menunjukkan apa penyebab sebenarnya dari kesalahan tersebut:

Server Error in '/' Application.
Runtime Error 

Description: An application error occurred on the server. The current custom error settings 
for this application prevent the details of the application error from being viewed remotely 
(for security reasons). It could, however, be viewed by browsers running on the local server 
machine. 

Details: To enable the details of this specific error message to be viewable on remote machines,
please create a <customErrors> tag within a "web.config" configuration file located in the
root directory of the current web application. This <customErrors> tag should then have its
"mode" attribute set to "Off".

Kemungkinan Penyebab dan Solusi

Secara default, ASP.NET menampilkan informasi kesalahan terperinci hanya ketika aplikasi web Anda berjalan di komputer lokal. Umumnya Anda tidak ingin menampilkan informasi kesalahan terperinci ketika aplikasi web Anda tersedia untuk umum melalui Internet, karena peretas mungkin dapat menggunakan informasi ini untuk menemukan kerentanan dalam aplikasi. Namun, ketika Anda menyebarkan situs atau pembaruan ke situs, terkadang ada yang salah dan Anda perlu mendapatkan pesan kesalahan yang sebenarnya.

Untuk memungkinkan aplikasi menampilkan pesan kesalahan terperinci saat berjalan pada host jarak jauh, edit file Web.config untuk mengatur mode customErrors nonaktif, sebarkan ulang aplikasi, dan jalankan aplikasi lagi:

  1. Jika file Web.config aplikasi memiliki elemen customErrors di elemen system.web, ubah atribut mode menjadi "off". Jika tidak, tambahkan elemen customErrors di elemen system.web dengan atribut mode diatur ke "nonaktif", seperti yang ditunjukkan dalam contoh berikut:

    <configuration>
      <system.web>
        <customErrors mode="off"/>
      </system.web>
    </configuration>
    
  2. Terapkan aplikasi.

  3. Jalankan aplikasi dan ulangi apa pun yang Anda lakukan sebelumnya yang menyebabkan kesalahan terjadi. Sekarang Anda dapat melihat apa pesan kesalahan yang sebenarnya.

  4. Ketika Anda telah mengatasi kesalahan, pulihkan pengaturan customErrors asli dan sebarkan ulang aplikasi.

Tidak dapat membuat/menyalin bayangan 'ContosoUniversity' ketika file tersebut sudah ada.

Skenario

Saat mencoba menjalankan proyek di Visual Studio, Anda mendapatkan halaman kesalahan dengan pesan seperti contoh berikut:

Kesalahan Server dalam Aplikasi '/'. Tidak dapat membuat/menyalin bayangan 'ContosoUniversity' ketika file tersebut sudah ada.

Kemungkinan Penyebab dan Solusi

Tunggu sebentar dan segarkan browser, atau kompilasi ulang situs dan coba jalankan lagi.

Akses Ditolak di Halaman Web yang Menggunakan SQL Server Compact

Skenario

Saat Anda menyebarkan situs yang menggunakan SQL Server Compact dan Anda menjalankan halaman di situs yang disebarkan yang mengakses database, Anda akan melihat pesan kesalahan berikut:

Akses ditolak. (Pengecualian dari HRESULT: 0x80070005 (E_ACCESSDENIED))

Kemungkinan Penyebab dan Solusi

Akun NETWORK SERVICE di server harus dapat membaca biner asli Ringkas Layanan SQL yang ada di folder bin\amd64 atau bin\x86 , tetapi tidak memiliki izin baca untuk folder tersebut. Atur izin baca untuk LAYANAN JARINGAN pada folder bin , pastikan untuk memperluas izin ke subfolder.

Tidak Dapat Membaca File Konfigurasi Karena Izin Tidak Cukup

Skenario

Saat Anda mengklik tombol terbitkan Visual Studio untuk menyebarkan aplikasi ke IIS di komputer lokal Anda, penerbitan gagal dan jendela Output menampilkan pesan kesalahan yang mirip dengan ini:

Terjadi kesalahan saat membaca File Konfigurasi IIS 'MACHINE/REDIRECTION'. Identitas yang melakukan operasi ini adalah ... Kesalahan: Tidak dapat membaca file konfigurasi karena izin yang tidak cukup.

Kemungkinan Penyebab dan Solusi

Untuk menggunakan penerbitan satu klik ke IIS di komputer lokal, Anda harus menjalankan Visual Studio dengan izin administrator. Tutup Visual Studio dan mulai ulang dengan izin administrator.

Tidak Dapat Tersambung ke Komputer Tujuan ... Menggunakan Proses yang Ditentukan

Skenario

Saat Anda mengklik tombol terbitkan Visual Studio untuk menyebarkan aplikasi, penerbitan gagal dan jendela Output menampilkan pesan kesalahan yang mirip dengan ini:

Web deployment task failed.(Could not connect to the destination computer ("<server URL>") using the specified process
("The Web Management Service"). This can happen if a proxy server is interrupting communication with the destination server. 
Disable the proxy server and try again.) ... The remote server returned an error: (502) Bad Gateway.

Kemungkinan Penyebab dan Solusi

Server proksi mengganggu komunikasi dengan server tujuan. Dari Panel Kontrol Windows atau di Internet Explorer, pilih Opsi Internet dan pilih tab Koneksi. Dalam kotak dialog Properti Internet, klik Pengaturan LAN. Dalam kotak dialog Pengaturan Jaringan Area Lokal (LAN), kosongkan kotak centang Deteksi pengaturan secara otomatis . Kemudian klik lagi tombol terbitkan.

Jika masalah berlanjut, hubungi administrator sistem Anda untuk menentukan apa yang dapat dilakukan dengan pengaturan proksi atau firewall. Masalah terjadi karena Web Deploy menggunakan port non-standar untuk penyebaran Layanan Manajemen Web (8172); untuk koneksi lain, Web Deploy menggunakan port 80. Ketika Anda menyebarkan ke penyedia hosting pihak ketiga, Anda biasanya menggunakan Layanan Manajemen Web.

Kumpulan Aplikasi .NET 4.0 default tidak ada

Skenario

Saat Anda menyebarkan aplikasi yang memerlukan .NET Framework 4, Anda akan melihat pesan kesalahan berikut:

Kumpulan aplikasi .NET 4.0 default tidak ada atau aplikasi tidak dapat ditambahkan. Pastikan bahwa ASP.NET 4.0 terinstal pada komputer ini.

Kemungkinan Penyebab dan Solusi

ASP.NET 4 tidak diinstal di IIS. Jika server yang Anda sebarkan adalah komputer pengembangan Anda dan memiliki Visual Studio 2010 yang terinstal di dalamnya, ASP.NET 4 diinstal di komputer tetapi mungkin tidak diinstal di IIS. Di server tempat Anda menyebarkan, buka prompt perintah yang ditingkatkan dan instal ASP.NET 4 di IIS dengan menjalankan perintah berikut:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

Anda mungkin juga perlu mengatur versi .NET Framework kumpulan aplikasi default secara manual. Untuk informasi selengkapnya, lihat tutorial Menyebarkan ke IIS sebagai Lingkungan Pengujian dalam seri ini.

Format string inisialisasi tidak sesuai dengan spesifikasi mulai dari indeks 0.

Skenario

Setelah Anda menyebarkan aplikasi menggunakan publikasi satu klik, saat Anda menjalankan halaman yang mengakses database, Anda mendapatkan pesan kesalahan berikut:

Format string inisialisasi tidak sesuai dengan spesifikasi mulai dari indeks 0.

Kemungkinan Penyebab dan Solusi

Buka file Web.config di situs yang disebarkan dan periksa untuk melihat apakah nilai string koneksi dimulai dengan $(ReplaceableToken_, seperti dalam contoh berikut:

<connectionStrings>
  <add name="DefaultConnection" connectionString="$(ReplaceableToken_DefaultConnection-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
  <add name="SchoolContext" connectionString="$(ReplaceableToken_SchoolContext-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

Jika string koneksi terlihat seperti contoh ini, edit file proyek dan tambahkan properti berikut ke elemen PropertyGroup yang untuk semua konfigurasi build:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Kemudian sebarkan ulang aplikasi.

Kesalahan Server Internal HTTP 500

Skenario

Saat Anda menjalankan situs yang disebarkan, Anda akan melihat pesan kesalahan berikut tanpa informasi tertentu yang menunjukkan penyebab kesalahan:

Kesalahan HTTP 500 - Kesalahan Server Internal.

Kemungkinan Penyebab dan Solusi

Ada banyak penyebab kesalahan 500, tetapi salah satu kemungkinan penyebab jika Anda mengikuti tutorial ini adalah Anda menempatkan elemen XML di tempat yang salah di salah satu file transformasi Web.config. Misalnya, Anda akan mendapatkan kesalahan ini jika Anda menempatkan transformasi yang menyisipkan <elemen lokasi> di bawah <system.web> alih-alih langsung di bawah <konfigurasi>. Anda dapat menggunakan fitur pratinjau transformasi Web.config untuk memverifikasi bahwa transformasi berfungsi seperti yang diinginkan. Solusinya jika Anda menemukan transformasi yang salah dikodekan adalah memperbaiki file transformasi dan menyebarkan ulang. Jika kesalahan tidak jelas, coba komentari transformasi dan sebarkan ulang untuk melihat mana yang menyebabkan kesalahan 500.

Kesalahan Server Internal HTTP 500.21

Skenario

Saat Anda menjalankan situs yang disebarkan, Anda akan melihat pesan kesalahan berikut:

Kesalahan HTTP 500.21 - Kesalahan Server Internal. Handler "PageHandlerFactory-Integrated" memiliki modul buruk "ManagedPipelineHandler" dalam daftar modulnya.

Kemungkinan Penyebab dan Solusi

Situs yang Anda sebarkan target ASP.NET 4, tetapi ASP.NET 4 tidak terdaftar di IIS di server. Di server buka prompt perintah yang ditinggikan dan daftarkan ASP.NET 4 dengan menjalankan perintah berikut:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

Anda mungkin juga perlu mengatur versi .NET Framework kumpulan aplikasi default secara manual. Untuk informasi selengkapnya, lihat tutorial Menyebarkan ke IIS sebagai Lingkungan Pengujian dalam seri ini.

Gagal Masuk Membuka Database SQL Server Express di App_Data

Skenario

Anda memperbarui string koneksi file Web.config untuk menunjuk ke database SQL Server Express sebagai file .mdf di folder App_Data Anda, dan pertama kali Anda menjalankan aplikasi, Anda melihat pesan kesalahan berikut:

System.Data.SqlClient.SqlException: Tidak dapat membuka database "DatabaseName" yang diminta oleh login. Gagal masuk.

Kemungkinan Penyebab dan Solusi

Nama file .mdf tidak dapat cocok dengan nama database SQL Server Express apa pun yang pernah ada di komputer Anda, bahkan jika Anda menghapus file .mdf dari database yang sudah ada sebelumnya. Ubah nama file .mdf menjadi nama yang belum pernah digunakan sebagai nama database dan ubah file Web.config untuk menggunakan nama baru. Sebagai alternatif, Anda dapat menggunakan SQL Server Management Studio Express untuk menghapus database SQL Server Express yang sudah ada sebelumnya.

Kompatibilitas Model Tidak Dapat Diperiksa

Skenario

Anda memperbarui string koneksi file Web.config untuk menunjuk ke database SQL Server Express baru, dan pertama kali Anda menjalankan aplikasi, Anda melihat pesan kesalahan berikut:

Kompatibilitas model tidak dapat diperiksa karena database tidak berisi metadata model. Pastikan Bahwa IncludeMetadataConvention telah ditambahkan ke konvensi DbModelBuilder.

Kemungkinan Penyebab dan Solusi

Jika nama database yang Anda masukkan ke dalam file Web.config pernah digunakan sebelumnya di komputer Anda, database mungkin sudah ada dengan beberapa tabel di dalamnya. Pilih nama baru yang belum pernah digunakan pada komputer Anda sebelumnya dan ubah file Web.config untuk menunjuk menggunakan nama database baru ini. Sebagai alternatif, Anda dapat menggunakan utilitas SQL Server Express atau SQL Server Management Studio Express untuk menghapus database yang ada.

Kesalahan SQL Saat Skrip Mencoba Membuat Pengguna atau Peran

Skenario

Anda menggunakan penyebaran database yang dikonfigurasi pada tab Paket/Terbitkan SQL , skrip SQL yang berjalan selama penyebaran termasuk perintah Buat Pengguna atau Buat Peran, dan eksekusi skrip gagal saat perintah tersebut dijalankan. Anda mungkin melihat pesan yang lebih rinci, seperti berikut ini:

The approximate location of the error was between lines '1' and '3' of the script. 
The verbose log may have more information about the error. The command started with:
CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT
Error: User does not have permission to perform this action.

Jika kesalahan ini terjadi ketika Anda telah mengonfigurasi penyebaran database di wizard Terbitkan Web daripada tab Paket/Terbitkan SQL , buat utas di forum Konfigurasi dan Penyebaran , dan solusi akan ditambahkan ke halaman pemecahan masalah ini.

Kemungkinan Penyebab dan Solusi

Akun pengguna yang Anda gunakan untuk melakukan penyebaran tidak memiliki izin untuk membuat pengguna atau peran. Misalnya, perusahaan hosting mungkin menetapkan peran db_datareader, db_datawriter, dan db_ddladmin ke akun pengguna yang disiapkannya untuk Anda. Ini cukup untuk membuat sebagian besar objek database, tetapi tidak untuk membuat pengguna atau peran. Salah satu cara untuk menghindari kesalahan adalah dengan mengecualikan pengguna dan peran dari penyebaran database. Anda dapat melakukan ini dengan mengedit elemen PreSource untuk skrip database yang dibuat secara otomatis sehingga menyertakan atribut berikut:

CopyAllUsers=false, CopyAllRoles=false

Untuk informasi tentang cara mengedit elemen PreSource dalam file proyek, lihat Cara: Mengedit Pengaturan Penyebaran di File Proyek. Jika pengguna atau peran dalam database pengembangan Anda harus berada di database tujuan, hubungi penyedia hosting Anda untuk bantuan.

SQL Server Kesalahan Waktu Habis Saat Menjalankan Skrip Kustom Selama Penyebaran

Skenario

Anda telah menentukan skrip SQL kustom untuk dijalankan selama penyebaran, dan ketika Web Deploy menjalankannya, waktunya habis.

Kemungkinan Penyebab dan Solusi

Menjalankan beberapa skrip yang memiliki mode transaksi yang berbeda dapat menyebabkan kesalahan waktu habis. Secara default, skrip yang dihasilkan secara otomatis berjalan dalam transaksi, tetapi skrip kustom tidak. Jika Anda memilih opsi Tarik data dan/atau skema dari database yang ada pada tab Paket/Terbitkan SQL , dan jika Anda menambahkan skrip SQL kustom, Anda harus mengubah pengaturan transaksi pada beberapa skrip sehingga semua skrip menggunakan pengaturan transaksi yang sama. Untuk informasi selengkapnya, lihat Cara: Menyebarkan Database Dengan Proyek Aplikasi Web.

Jika Anda telah mengonfigurasi pengaturan transaksi sehingga semuanya sama tetapi masih mendapatkan kesalahan ini, solusi yang mungkin adalah menjalankan skrip secara terpisah. Di kisi Skrip Database di tab Paket/Terbitkan SQL, kosongkan kotak centang Sertakan untuk skrip yang menyebabkan kesalahan waktu habis, lalu terbitkan proyek. Lalu kembali ke kisi Skrip Database , pilih kotak centang Sertakan skrip tersebut, dan kosongkan kotak centang Sertakan untuk skrip lainnya. Kemudian terbitkan proyek lagi. Kali ini saat Anda menerbitkan, hanya skrip kustom yang dipilih yang berjalan.

Data Aliran Manifes Situs Belum Tersedia

Skenario

Saat Anda menginstal paket menggunakan file deploy.cmd dengan opsi t (pengujian), Anda akan melihat pesan kesalahan berikut:

Kesalahan: Data aliran 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' belum tersedia.

Kemungkinan Penyebab dan Solusi

Pesan kesalahan berarti bahwa perintah tidak dapat menghasilkan laporan pengujian. Namun, perintah mungkin berjalan jika Anda menggunakan opsi y (penginstalan aktual). Pesan hanya menunjukkan bahwa ada masalah dengan menjalankan perintah dalam mode pengujian.

Aplikasi Ini Memerlukan ManagedRuntimeVersion v4.0

Skenario

Saat Mencoba menyebarkan, Anda akan melihat pesan kesalahan berikut:

Kumpulan aplikasi yang coba Anda gunakan memiliki properti 'managedRuntimeVersion' yang diatur ke 'v2.0'. Aplikasi ini memerlukan 'v4.0'.

Kemungkinan Penyebab dan Solusi

ASP.NET 4 tidak diinstal di IIS. Jika server yang Anda sebarkan adalah komputer pengembangan Anda dan memiliki Visual Studio 2010 yang terinstal di dalamnya, ASP.NET 4 diinstal di komputer tetapi mungkin tidak diinstal di IIS. Di server tempat Anda menyebarkan, buka prompt perintah yang ditingkatkan dan instal ASP.NET 4 di IIS dengan menjalankan perintah berikut:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –i

Tidak dapat mentransmisikan Microsoft.Web.Deployment.DeploymentProviderOptions

Skenario

Saat Anda menyebarkan paket, Anda akan melihat pesan kesalahan berikut:

Tidak dapat mentransmisikan objek jenis 'Microsoft.Web.Deployment.DeploymentProviderOptions' ke 'Microsoft.Web.Deployment.DeploymentProviderOptions'.

Kemungkinan Penyebab dan Solusi

Anda mencoba menyebarkan dari Manajer IIS menggunakan UI Web Deploy 1.1 ke server yang telah menginstal Web Deploy 2.0. Jika Anda menggunakan Alat Administrasi Jarak Jauh IIS untuk menyebarkan dengan mengimpor paket, centang kotak dialog Fitur Baru yang Tersedia saat Anda membuat koneksi. (Kotak dialog ini mungkin hanya ditampilkan sekali ketika koneksi pertama kali dibuat. Untuk menghapus koneksi dan memulai kembali, tutup Manajer IIS dan mulai lagi dengan memasukkan inetmgr /reset di prompt perintah.) Jika salah satu fitur yang tercantum adalah UI Web Deploy, dan memiliki nomor versi yang lebih rendah dari 8, server yang Anda sebarkan mungkin menginstal Web Deploy versi 1.1 dan 2.0. Untuk menyebarkan dari klien yang telah menginstal 2.0, server hanya harus menginstal Web Deploy 2.0. Anda harus menghubungi penyedia hosting Anda untuk mengatasi masalah ini.

Tidak dapat memuat komponen asli SQL Server Compact

Skenario

Saat Anda menjalankan situs yang disebarkan, Anda akan melihat pesan kesalahan berikut:

Tidak dapat memuat komponen asli SQL Server Compact yang sesuai dengan penyedia ADO.NET versi 8482. Instal versi SQL Server Compact yang benar. Lihat artikel KB 974247 untuk detail selengkapnya.

Kemungkinan Penyebab dan Solusi

Situs yang disebarkan tidak memiliki subfolder amd64 dan x86 dengan rakitan asli di dalamnya di bawah folder bin aplikasi. Pada komputer yang telah SQL Server Compact terinstal, rakitan asli terletak di C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private. Cara terbaik untuk mendapatkan file yang benar ke folder yang benar dalam proyek Visual Studio adalah dengan menginstal paket NuGet SqlServerCompact. Penginstalan paket menambahkan skrip pasca-build untuk menyalin rakitan asli ke amd64 dan x86. Namun, agar ini disebarkan, Anda harus menyertakannya secara manual dalam proyek. Untuk informasi selengkapnya, lihat tutorial Menyebarkan SQL Server Compact.

Kesalahan "Jalur tidak valid" setelah menyebarkan aplikasi Kode Kerangka Kerja Entitas Pertama

Skenario

Anda menyebarkan aplikasi yang menggunakan Migrasi Pertama Kode Kerangka Kerja Entitas dan DBMS seperti SQL Server Compact yang menyimpan databasenya dalam file di folder App_Data. Anda memiliki Migrasi Pertama Kode yang dikonfigurasi untuk membuat database setelah penyebaran pertama Anda. Saat menjalankan aplikasi, Anda mendapatkan pesan kesalahan seperti contoh berikut:

Jalur tidak valid. Periksa direktori untuk database. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]

Kemungkinan Penyebab dan Solusi

Code First mencoba membuat database tetapi folder App_Data tidak ada. Anda tidak memiliki file apa pun di folder App_Data saat Anda menyebarkan, atau Anda memilih Kecualikan App_Data pada tab Web Paket/Terbitkan dari jendela Properti Proyek. Proses penyebaran tidak akan membuat folder di server jika tidak ada file di folder yang akan disalin ke server. Jika Anda sudah menyiapkan database di situs, proses penyebaran akan menghapus file dan folder App_Data itu sendiri jika Anda memilih Hapus file tambahan di tujuan di profil penerbitan. Untuk mengatasi masalah ini, letakkan file tempat penampung seperti file .txt di folder App_Data , pastikan Anda tidak memilih Kecualikan App_Data , dan sebarkan ulang.

"Objek COM yang telah dipisahkan dari RCW yang mendasarnya tidak dapat digunakan."

Skenario

Anda telah berhasil menggunakan publikasi satu klik untuk menyebarkan aplikasi Anda dan kemudian Anda mulai mendapatkan kesalahan ini:

Tugas penyebaran web gagal. (Tidak dapat menyelesaikan permintaan ke URL agen jarak jauh '<https://serverurl.com/msdeploy.axd?site=sitename>'.)
Tidak dapat menyelesaikan permintaan ke URL agen jarak jauh '<https://url/msdeploy.axd?site=sitename>'.
Permintaan dibatalkan: Permintaan dibatalkan.
Objek COM yang telah dipisahkan dari RCW yang mendasarnya tidak dapat digunakan.

Kemungkinan Penyebab dan Solusi

Menutup dan memulai ulang Visual Studio biasanya hanya diperlukan untuk mengatasi kesalahan ini.

Penyebaran Gagal Karena Kredensial Pengguna yang Digunakan untuk Penerbitan Tidak Memiliki Otoritas setACL

Skenario

Penerbitan gagal dengan kesalahan yang menunjukkan Anda tidak memiliki otoritas untuk mengatur izin folder (akun pengguna yang Anda gunakan tidak memiliki otoritas setACL).

Kemungkinan Penyebab dan Solusi

Secara default, Visual Studio mengatur izin baca pada folder akar situs dan menulis izin pada folder App_Data. Jika Anda tahu bahwa izin default pada folder situs sudah benar dan tidak perlu diatur, Anda menonaktifkan perilaku ini dengan menambahkan <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination ke file profil penerbitan> (untuk memengaruhi satu profil) atau ke file wpp.targets (untuk memengaruhi semua profil). Untuk informasi tentang cara mengedit file-file ini, lihat Cara: Mengedit Pengaturan Penyebaran di File Profil (.pubxml).

Kesalahan Akses Ditolak saat Aplikasi Mencoba Menulis ke Folder Aplikasi

Skenario

Kesalahan aplikasi Anda ketika mencoba membuat atau mengedit file di salah satu folder aplikasi, karena tidak memiliki otoritas tulis untuk folder tersebut.

Kemungkinan Penyebab dan Solusi

Secara default, Visual Studio mengatur izin baca pada folder akar situs dan menulis izin pada folder App_Data. Jika aplikasi Anda memerlukan akses tulis ke sub-folder, Anda dapat mengatur izin untuk folder tersebut seperti yang ditunjukkan dalam tutorial Mengatur Izin Folder dan Menyebarkan ke Lingkungan Produksi dalam seri ini. Jika aplikasi Anda memerlukan akses tulis ke folder akar situs, Anda harus mencegahnya mengatur akses baca-saja pada folder akar dengan menambahkan <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination ke file profil penerbitan> (untuk memengaruhi satu profil) atau ke file wpp.targets (untuk memengaruhi semua profil). Untuk informasi tentang cara mengedit file-file ini, lihat Cara: Mengedit Pengaturan Penyebaran di File Profil (.pubxml).

Kesalahan Konfigurasi - atribut targetFramework mereferensikan versi yang lebih baru dari versi .NET Framework yang diinstal

Skenario

Anda berhasil menerbitkan proyek web yang menargetkan ASP.NET 4.5, tetapi ketika Anda menjalankan aplikasi (dengan mode customErrors diatur ke "nonaktif" dalam file Web.config) Anda mendapatkan kesalahan berikut:

Atribut 'targetFramework' dalam <elemen kompilasi> file Web.config hanya digunakan untuk menargetkan versi 4.0 dan yang lebih baru dari .NET Framework (misalnya, '<kompilasi targetFramework="4.0">'). Atribut 'targetFramework' saat ini mereferensikan versi yang lebih baru dari versi .NET Framework yang diinstal. Tentukan versi target yang valid dari .NET Framework, atau instal versi .NET Framework yang diperlukan.

Kotak Kesalahan Sumber dari halaman kesalahan menyoroti baris berikut dari Web.config sebagai penyebab kesalahan:

<kompilasi targetFramework="4.5" />

Kemungkinan Penyebab dan Solusi

Server tidak mendukung ASP.NET 4.5. Hubungi penyedia hosting untuk menentukan kapan dan apakah dukungan untuk ASP.NET 4.5 dapat ditambahkan. Jika memutakhirkan server bukanlah opsi, Anda harus menyebarkan proyek web yang menargetkan ASP.NET 4 atau yang lebih lama sebagai gantinya.

Jika Anda menyebarkan ASP.NET 4 atau proyek web yang lebih lama ke tujuan yang sama, pilih kotak centang Hapus file tambahan di tujuan pada tab Pengaturan wizard Terbitkan Web . Jika Anda tidak memilih Hapus file tambahan di tujuan, Anda akan terus mendapatkan halaman Kesalahan Konfigurasi.

Jendela Properti proyek menyertakan daftar drop-down Kerangka kerja target, tetapi Anda tidak dapat mengatasi masalah ini hanya dengan mengubahnya dari .NET Framework 4,5 menjadi .NET Framework 4. Jika Anda mengubah kerangka kerja target ke versi kerangka kerja sebelumnya, proyek masih akan memiliki referensi ke rakitan versi kerangka kerja yang lebih baru dan tidak akan berjalan. Anda harus mengubah referensi tersebut secara manual atau membuat proyek baru yang menargetkan .NET Framework 4 atau yang lebih lama. Untuk informasi selengkapnya, lihat penargetan .NET Framework untuk Situs Web.

Kesalahan Kepercayaan Sedang

Skenario

Saat Anda menjalankan aplikasi Anda dalam produksi, aplikasi tersebut mendapatkan kesalahan yang terkait dengan kepercayaan menengah.

Kemungkinan Penyebab dan Solusi

Banyak penyedia hosting pihak ketiga menjalankan situs web Anda dalam kepercayaan menengah, yang berarti bahwa ada beberapa hal yang tidak diizinkan untuk dilakukan. Misalnya, kode aplikasi tidak dapat mengakses registri Windows dan tidak dapat membaca atau menulis file yang berada di luar hierarki folder aplikasi Anda. Secara default aplikasi Anda berjalan dengan kepercayaan penuh pada komputer lokal Anda, yang berarti bahwa aplikasi mungkin dapat melakukan hal-hal yang akan gagal ketika Anda menyebarkannya ke produksi.

Anda dapat mengonfigurasi aplikasi untuk berjalan dalam kepercayaan sedang di lingkungan IIS lokal untuk memecahkan masalah. Untuk melakukannya, buka file Web.config aplikasi, dan tambahkan elemen kepercayaan di elemen system.web , seperti yang ditunjukkan dalam contoh ini.

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium" />
    <!-- Settings -->
  </system.web>
</configuration>

Aplikasi sekarang akan berjalan dalam kepercayaan sedang pada IIS bahkan di komputer lokal Anda.

Jangan lakukan ini jika Anda menyebarkan ke Azure App Service, karena Azure tidak memerlukan kepercayaan sedang. Pada saat tutorial ini sedang ditulis pada bulan Februari 2012, menggunakan metode ini untuk membuat aplikasi Anda berjalan dengan kepercayaan sedang akan menyebabkan kesalahan di Azure.

Jika Anda menggunakan Migrasi Pertama Kode Kerangka Kerja Entitas dan Anda menyebarkan ke penyedia hosting yang menjalankan aplikasi Anda dengan kepercayaan sedang, pastikan Anda telah menginstal versi 5.0 atau yang lebih baru. Dalam Entity Framework versi 4.3, Migrasi memerlukan kepercayaan penuh untuk memperbarui skema database.

KESALAHAN HTTP 404.17 Tidak Ditemukan

Skenario

Saat Anda menjalankan situs yang disebarkan di komputer pengembangan Anda di IIS, Anda akan melihat pesan kesalahan berikut yang melaporkan bahwa server tidak dapat memproses Default.aspx:

Kesalahan HTTP 404.17 - Tidak Ditemukan

Konten yang diminta tampaknya skrip dan tidak akan dilayani oleh handler file statis.

Kemungkinan Penyebab dan Solusi

ASP.NET 4.5 mungkin tidak diinstal pada komputer Anda. Lihat langkah-langkah dalam tutorial Menyebarkan ke IIS sebagai Lingkungan Pengujian dalam seri ini yang menjelaskan cara menginstal ASP.NET 4.5.