Bagikan melalui


Menyebarkan Aplikasi Web ASP.NET dengan SQL Server Compact menggunakan Visual Studio atau Pengembang Web Visual: Pemecahan Masalah (12 dari 12)

oleh Tom Dykstra

Unduh Proyek Starter

Rangkaian tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) proyek aplikasi web ASP.NET yang menyertakan database SQL Server Compact dengan menggunakan Visual Studio 2012 RC atau Visual Studio Express 2012 RC for Web. Anda juga dapat menggunakan Visual Studio 2010 jika Anda menginstal Pembaruan Penerbitan Web. Untuk pengenalan seri ini, lihat tutorial pertama dalam seri ini.

Untuk tutorial yang menunjukkan fitur penyebaran yang diperkenalkan setelah rilis RC Visual Studio 2012, menunjukkan cara menyebarkan edisi SQL Server selain SQL Server Compact, dan menunjukkan cara menyebarkan ke Windows Azure Web Sites, lihat ASP.NET Web Deployment menggunakan Visual Studio.

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.

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 aktual.

Untuk mengaktifkan aplikasi untuk menampilkan pesan kesalahan terperinci saat berjalan di host jarak jauh, edit file Web.config untuk mengatur customErrors mode nonaktif, menyebarkan ulang aplikasi, dan menjalankan aplikasi lagi:

  1. Jika file Web.config aplikasi memiliki customErrors elemen dalam system.web elemen , ubah mode atribut menjadi "off". Jika tidak, tambahkan customErrors elemen dalam system.web elemen dengan atribut yang 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 asli customErrors dan sebarkan ulang aplikasi.

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:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Kemungkinan Penyebab dan Solusi

Akun LAYANAN JARINGAN 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:

An error occurred when reading the IIS Configuration File 'MACHINE/REDIRECTION'. 
The identity performing this operation was ... Error: Cannot read configuration file due to insufficient permissions.

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 . Lalu 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. Saat 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:

The default .NET 4.0 application pool does not exist or the application could not be added. 
Please verify that ASP.NET 4.0 is installed on this machine.

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 .

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 of the initialization string does not conform to specification starting at index 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 PropertyGroup elemen 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:

HTTP Error 500 - Internal Server Error.

Kemungkinan Penyebab dan Solusi

Ada banyak penyebab kesalahan 500, tetapi salah satu kemungkinan penyebabnya jika Anda mengikuti tutorial ini adalah Anda menempatkan elemen XML di tempat yang salah di salah satu file transformasi XML. Misalnya, Anda akan mendapatkan kesalahan ini jika Anda menempatkan transformasi yang menyisipkan <location> elemen di bawah <system.web> alih-alih langsung di bawah <configuration>. Solusi dalam hal ini adalah memperbaiki file transformasi XML dan menyebarkan ulang.

Kesalahan Server Internal HTTP 500.21

Skenario

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

HTTP Error 500.21 - Internal Server Error. 
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

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 .

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: Cannot open database "DatabaseName" requested by the login. The login failed.

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:

Model compatibility cannot be checked because the database does not contain model metadata. 
Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions.

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 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 db_datareaderperan , , db_datawriterdan 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 PreSource elemen untuk skrip database yang dibuat secara otomatis sehingga menyertakan atribut berikut:

CopyAllUsers=false, CopyAllRoles=false

Untuk informasi tentang cara mengedit PreSource elemen 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 t opsi (pengujian), Anda akan melihat pesan kesalahan berikut:

Error: The stream data of 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' is not yet available.

Kemungkinan Penyebab dan Solusi

Pesan kesalahan berarti bahwa perintah tidak dapat menghasilkan laporan pengujian. Namun, perintah mungkin berjalan jika Anda menggunakan y opsi (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:

Kesalahan: Data aliran 'sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' belum tersedia. 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:

Unable to cast object of type 'Microsoft.Web.Deployment.DeploymentProviderOptions' to '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 memasukkannya 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:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8482. 
Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

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:

The path is not valid. Check the directory for the 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:

Web deployment task failed. (Could not complete the request to remote agent URL 'https://serverurl.com/msdeploy.axd?site=sitename'.)
Could not complete the request to remote agent URL 'https://url/msdeploy.axd?site=sitename'.
The request was aborted: The request was canceled.
COM object that has been separated from its underlying RCW cannot be used.

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 . 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 customErrors mode diatur ke "nonaktif" dalam file Web.config), Anda mendapatkan kesalahan berikut:

The 'targetFramework' attribute in the <compilation> element of the Web.config 
file is used only to target version 4.0 and later of the .NET Framework (for 
example, '<compilation targetFramework="4.0">'). The 'targetFramework' attribute 
currently references a version that is later than the installed version of the 
.NET Framework. Specify a valid target version of the .NET Framework, or install 
the required version of the .NET Framework.

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

<compilation 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.