Web Matrix dan ASP.NET Web Pages (Razor) Beta 3 Release Readme
Web Matrix dan ASP.NET Web Pages (Razor) Beta 3 Release Readme
9 November 2010
Microsoft WebMatrix Beta adalah tumpukan pengembangan web gratis yang diinstal dalam hitung menit. Ini mengintegrasikan server web dengan database dan kerangka kerja pemrograman untuk membuat satu pengalaman terintegrasi. Anda dapat menggunakan WebMatrix Beta untuk menyederhanakan cara Anda membuat kode, menguji, dan menerbitkan situs web ASP.NET atau PHP Anda sendiri, atau Anda dapat menggunakan WebMatrix Beta untuk memulai situs web baru menggunakan aplikasi sumber terbuka populer seperti DotNetNuke, Umbraco, WordPress, atau Joomla. WebMatrix Beta menggunakan lingkungan server web, mesin database, dan kerangka kerja yang sama kuat yang akan menjalankan situs web Anda di internet, yang membuat transisi dari pengembangan ke produksi lancar dan mulus.
Catatan
WebMatrix tidak lagi direkomendasikan sebagai lingkungan pengembangan terintegrasi untuk halaman web ASP.NET. Gunakan Visual Studio atau Visual Studio Code.
Jika Anda mengalami masalah selama penginstalan, lihat Memecahkan Masalah dengan Microsoft Web Platform Installer.
Lihat Instruksi Langkah demi Langkah untuk Aplikasi Penerbitan
.NET Framework versi 4 diperlukan untuk WebMatrix Beta. Dalam kasus tertentu, alat penginstal WebMatrix Beta akan memungkinkan Anda mencoba menginstal pada platform yang bukan bagian dari set konfigurasi yang didukung. Secara khusus, Windows Vista tanpa pembaruan SP1 akan memungkinkan Anda memulai penginstalan WebMatrix Beta, tetapi komponen .NET Framework 4 akan gagal dan memblokir penginstalan Anda.
Solusi Sementara
Instal pada platform yang didukung, yang meliputi:
- Windows 7
- Windows Server 2008
- Windows Server 2008 R2
- Windows Vista SP1 atau yang lebih baru
- Windows XP SP3
- Windows Server 2003 SP2
Masalah: Tidak dapat menginstal WebMatrix Beta 3 jika Microsoft Visual Studio 2008 diinstal tanpa Microsoft Visual Studio 2008 SP1
Solusi Sementara
Instal Microsoft Visual Studio 2008 Service Pack 1 dari Pusat Unduhan Microsoft.
Rakitan terkelola untuk SQL Server Compact 4.0 tidak ditempatkan di cache perakitan global (GAC) ketika Anda menginstal SQL Server Compact 4.0 pada komputer 64-bit dan komputer hanya memiliki Profil Klien .NET Framework 3.5 SP1 yang diinstal. Rakitan terkelola yang tidak diinstal di GAC adalah:
- System.Data.SqlServerCe.dll (penyedia ADO.NET)
- System.Data.SqlServerCe.Entity.dll (Kerangka Kerja Entitas ADO.NET )
Solusi Sementara
Hapus instalan SQL Server Compact 4.0. Unduh dan instal versi lengkap .NET Framework 3.5 SP1 dari lokasi berikut:Microsoft .NET Framework 3.5 Paket layanan 1 (Paket Lengkap)
Kemudian instal ulang SQL Server Compact 4.0.
Penghapusan instalasi SQL Server Compact menggunakan opsi baris perintah tidak berfungsi dalam rilis ini.
Solusi Sementara
Gunakan Program dan Fitur di Windows Panel Kontrol untuk menghapus instalan Microsoft SQL Server Compact 4.0.
Bagian dokumen ini menjelaskan fitur, perubahan, dan masalah baru yang diketahui dengan rilis Beta 3 ASP.NET Web Pages dengan sintaks Razor.
Metode baru
Html.Raw
memungkinkan Anda merender markup HTML sebagai markup alih-alih merender output yang dikodekan. (Secara default, ASP.NET Razor mengodekan string sebelum merendernya.) Sintaksnya adalah:
Html.Raw(value)
Contoh berikut menunjukkan cara menggunakan
Html.Raw
:@* Inserts literal markup into the page as specified in the value string. *@ @Html.Raw("<div>Hello <em>world</em>!</div>")
Metode
HrefAttribute
WebPage
kelas telah dihapus. Pembantu ini digunakan untuk mengodekan karakter yang tidak aman dalam URL. Ini tidak lagi diperlukan karena ASP.NET Razor secara otomatis mengodekan string. (Gunakan metode baruHtml.Raw
untuk merender string yang tidak dikodekan.)
Dalam rilis Beta 3, ASP.NET mengubah cara penguraian pembantu yang dibuat menggunakan
@helper
sintaks. Intinya,@helper
sintaksis sekarang diurai sebagai blok kode alih-alih sebagai blok markup yang dapat menyertakan kode. Oleh karena itu, kode di dalam pembantu tidak perlu diapit dalam@{ }
blok. Sebaliknya, markup di dalam pembantu harus secara eksplisit disertakan dalam elemen HTML atau dalam tag ASP.NET Razor<text></text>
.Misalnya, sintaks berikut
@helper
berfungsi dalam rilis Beta 3:@helper ThumbnailLink(string imagePath, int width, int height) { @{ string newFileName = ""; WebImage thumbnail = new WebImage(imagePath); if(thumbnail != null){ thumbnail.Resize(width, height, true, true); newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName); thumbnail.Save(newFileName); } } <a href="@Href(imagePath)"><img src="@Href(newFileName)" /></a> }
Dalam rilis Beta 3, pembantu ini harus diubah agar terlihat seperti contoh berikut:
@helper ThumbnailLink(string imagePath, int width, int height) { string newFileName = ""; WebImage thumbnail = new WebImage(imagePath); if(thumbnail != null){ thumbnail.Resize(width, height, true, true); newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName); thumbnail.Save(newFileName); } <a href="@Href(imagePath)"><img src="@Href(newFileName)" /></a> }
Perhatikan bahwa karakter di
@{ }
sekitar kode awal di pembantu tidak lagi digunakan. Ini karena konten pembantu diperlakukan sebagai blok kode secara default. Pembantu merender markup, yang dimulai dengan tag pembuka<a>
. Jika pembantu harus merender teks biasa atau tag yang tidak menyertakan tag penutup (misalnya,<meta>
tag), konten yang akan dirender harus dalam<text></text>
tag.
Properti
WebPageContext.HttpContext
telah dihapus. GunakanHttpContext.Current
sebagai gantinya. (PropertiWebPageContext.HttpContext
hanya membungkus ini.)
Pembantu
Jenis berikut dipindahkan ke
WebMatrix.WebData
rakitan:
ExtendedMembershipProvider
SimpleMembershipProvider
SimpleRoleProvider
WebSecurity
Kelas
TagBuilder
telah dipindahkan ke assembly System.Web.WebPages.dll. Sebelumnya, ini berada di perakitan yang merupakan bagian dari ASP.NET MVC. Perubahan ini berarti Anda tidak perlu menginstal ASP.NET MVC untuk menggunakanTagBuilder
kelas .Namun, kelas masih berada di
System.Web.Mvc
namespace layanan. Untuk menggunakanTagBuilder
kelas (misalnya, dalam pembantu ASP.NET Razor kustom), Anda harus mereferensikan namespace (misalnya, dengan menambahkan@using System.Web.Mvc
ke kode Anda).
Dalam rilis Beta 3, untuk menonaktifkan validasi untuk bidang individual atau kumpulan bidang, Anda dapat memanggil
Validation.Exclude
metode , meneruskan nama atau nama bidang untuk dikecualikan dari validasi. Sintaks baru tersedia dalam rilis Beta 3 untuk melewati validasi. Metode yangValidation
digunakan dalam Beta 3 telah dihapus.Catatan
Jika Anda tidak menonaktifkan validasi permintaan, jika pengguna mencoba mengunggah markup HTML (misalnya, dengan menggunakan editor teks kaya pada halaman), situs web akan melaporkan kesalahan seperti nilai Request.Form yang berpotensi berbahaya terdeteksi dari klien dan input pengguna tidak diterima. Jika Anda menonaktifkan validasi permintaan, Anda harus memeriksa input pengguna secara manual untuk memastikan bahwa itu tidak berisi markup atau skrip yang berpotensi berbahaya dengan Mencegah Scripting Lintas Situs (XSS) di ASP.NET Core.
Untuk menonaktifkan validasi permintaan otomatis, panggil
Request.Unvalidated
metode , berikan nama bidang atau objek postingan lain yang ingin Anda lewati validasi permintaannya. Anda dapat menggunakan metode ini untuk melewati validasi untuk item apa pun dalamForm
koleksi , ,QueryString
Cookies
, danServerVariables
. Contoh berikut menunjukkan cara menggunakanUnvalidated
metode :Request["userInput"]; // Validated Request.Unvalidated("userInput"); // Validation bypassed Request.Unvalidated().Form["userInput"]; // Validation bypassed Request.QueryString["userPreference"]; // Validated Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed
Untuk menginisialisasi penyedia keanggotaan untuk situs web ASP.NET Razor, Anda memanggil metode .
WebSecurity.InitializeDatabaseConnection
(Di WebMatrix, templat Situs Pemula menyertakan panggilan ke metode ini dalam file _AppStart.cshtml .)autoCreateTables
Jika parameter metode ini diatur ke true (secara default, parameter ini diatur ke true di templat Situs Pemula), dan jika nama tabel yang tidak dikenal diteruskan ke metode (parameter kedua), metode tidak melemparkan kesalahan. Sebaliknya, tabel secara otomatis membuat tabel.Ini bisa menjadi masalah jika Anda berniat menggunakan tabel pengguna kustom untuk keanggotaan tetapi meneruskan nama tabel yang salah ke
WebSecurity.InitializeDatabaseConnection
metode . Karena metode tidak secara default menimbulkan kesalahan jika tabel yang Anda tentukan tidak ada, dan karena sebaliknya membuat tabel baru, aplikasi dapat tampak berfungsi. Namun, kode aplikasi yang bergantung pada tabel pengguna kustom Anda (dan pada bidang di dalamnya) akhirnya dapat gagal dengan kesalahan tak terduga.Solusi Sementara
Pastikan bahwa nama yang diteruskan dalamInitializeDatabaseConnection
metode cocok dengan tabel profil pengguna dalam database keanggotaan, atau pastikan bahwaautoCreateTables
parameter diatur ke false.
Jika aplikasi WebMatrix Web menggunakan SQL Server Express dan menjalankan IIS 7.5 di Windows 7 atau Windows Server 2008 R2, Anda mungkin melihat kesalahan yang menunjukkan bahwa SQL Server tidak dapat mengambil jalur aplikasi lokal pengguna pada durasi.
Penanganan masalah Pastikan bahwa akun Windows yang dijalankan aplikasi di bawah (biasanya LAYANAN JARINGAN) memiliki izin baca/tulis untuk folder akar aplikasi dan untuk subfolder seperti App_Data. Informasi lebih rinci tersedia di Masalah dengan instancing pengguna SQL Server Express dan ASP.net Proyek Aplikasi Web.
Masalah: Di Visual Studio, namespace layanan untuk rakitan kustom (DLL) tidak diimpor secara otomatis
Jika Anda menggunakan rakitan kustom dalam proyek di Visual Studio, namespace yang dideklarasikan dalam rakitan tersebut tidak diimpor secara otomatis pada waktu desain. Akibatnya, referensi ke jenis kustom mungkin tidak dikenali pada waktu desain dan ditandai sebagai tidak dikenali di Visual Studio (menggunakan "squiggle"). Masalah ini hanya terjadi pada waktu desain di Visual Studio; aplikasi itu sendiri berjalan dengan benar.
Solusi Sementara
using
Sertakan pernyataan (imports
dalam Visual Basic) yang mereferensikan entitas yang tidak dikenali pada waktu desain.
Menginstal ASP.NET Web Pages tidak juga menginstal alat untuk Visual Studio seperti IntelliSense dan templat proyek untuk aplikasi ASP.NET Web Pages.
Penanganan masalah Untuk menggunakan IntelliSense dan templat proyek untuk aplikasi halaman web ASP.NET di Visual Studio, instal ASP.NET MVC 3 RC baik melalui Alat Penginstal Platform Web atau alat penginstal mandiri.
Setelah meningkatkan ke Beta 3, Anda mungkin melihat kesalahan bahwa kelas pembantu
Solusi Sementara
Komentari panggilan ke pembantu apa pun di situs, jalankan halaman _Admin , dan instal paket atau paket yang menyertakan pembantu yang ingin Anda gunakan. Setelah menginstal paket, Anda dapat membatalkan komentar baris yang mereferensikan pembantu.
Masalah: Menyebarkan rakitan Beta 3 ASP.NET Razor ke folder Bin mungkin tidak berfungsi di situs hosting
Jika Anda menyebarkan situs web ASP.NET Web Pages ke situs hosting, dan jika Anda menyebarkan rakitan ASP.NET Razor Beta 3 ke folder Bin situs, Anda mungkin mengalami kesalahan, termasuk yang berikut ini:
Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Ini dapat terjadi jika penyedia hosting telah menginstal rakitan ASP.NET Web Pages Beta 1 ke dalam cache aplikasi global (GAC) server. Rakitan di GAC lebih diutamakan daripada rakitan yang diinstal secara lokal di folder Bin .
Penanganan masalah Hubungi penyedia hosting Anda untuk mengonfirmasi bahwa kesalahan yang Anda lihat disebabkan oleh konflik antara versi rakitan penyedia dan rakitan Anda. Jika demikian, minta penyedia hosting memperbarui rakitan di GAC server.
Jika server yang menjalankan situs berada di belakang server proksi, Anda mungkin perlu mengonfigurasi informasi proksi dalam file Web.config agar dapat membaca informasi yang berasal dari luar situs Anda. Misalnya, jika Anda menggunakan pembantu
ReCaptcha
, pembantu berkomunikasi dengan layanan reCAPTCHA, tetapi mungkin diblokir oleh server proksi Anda. Demikian pula, umpan yang digunakan di Halaman Web ASP.NET, seperti umpan yang digunakan oleh manajer paket, mungkin memerlukan konfigurasi proksi.Jika Anda mengalami masalah dalam bekerja dengan layanan eksternal atau bekerja dengan umpan paket, masukkan elemen berikut ke dalam file Web.config akar aplikasi Anda:
<system.net> <defaultProxy> <proxy autoDetect="False" proxyaddress="[proxy URL]"/> </defaultProxy> </system.net>
Untuk informasi selengkapnya tentang mengonfigurasi server proksi, lihat <Elemen proksi> (Pengaturan Jaringan) di situs Web MSDN.
Jika sebelumnya Anda menginstal versi Beta 1 ASP.NET Web Pages dengan sintaks Razor lalu menginstal versi Beta 3, semua rakitan yang sesuai diinstal di GAC kecuali Microsoft.Web.Infrastructure.dll. Akibatnya, ketika Anda menjalankan halaman ASP.NET Razor, Anda melihat kesalahan yang menunjukkan bahwa Microsoft.Web.Infrastructure.dll tidak dapat dimuat.
Masalah ini tidak terjadi jika Anda memuat rilis Beta 3 pada komputer yang bersih.
Solusi Sementara
Di Panel Kontrol, hapus instalan ASP.NET Halaman Web. Kemudian instal ulang rilis Beta 3.
Masalah: Menghapus instalasi .NET Framework versi 4 menonaktifkan ASP.NET Web Pages dengan Sintaks Razor
Jika Anda menghapus instalasi .NET Framework versi 4 lalu menginstalnya kembali, ASP.NET Halaman Web dengan sintaks Razor dinonaktifkan. Halaman dengan ekstensi .cshtml tidak berjalan dengan benar. ASP.NET Web Pages mendaftarkan rakitan dalam file Web.config akar mesin, dan menghapus .NET Framework akan menghapus file tersebut. Menginstal ulang .NET Framework menginstal versi baru file konfigurasi, tetapi tidak menambahkan referensi untuk rakitan Halaman Web ASP.NET.
Penanganan masalah Setelah menginstal ulang .NET Framework, instal ulang ASP.NET Halaman Web dengan sintaks Razor. Ini menambahkan elemen berikut ke file Web.config di akar komputer, yang biasanya berada di lokasi berikut:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (32-bit)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config (64-bit)
<compilation> <assemblies> <add assembly="Microsoft.WebPages.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <-- Additional assemblies here. --> </assemblies> </compilation>
Masalah: Aplikasi yang sebelumnya disebarkan dengan rakitan ASP.NET di folder Bin mengalami kesalahan
Selama penyebaran, salinan rakitan Halaman Web ASP.NET (misalnya, Microsoft.WebPages.dll) ke folder Bin situs web di server. (Ini mungkin terjadi secara otomatis selama penyebaran atau karena pengembang secara eksplisit menyalin rakitan.) Namun, ketika rilis Beta 3 diinstal, kesalahan terjadi, seperti kesalahan bahwa jenis tertentu tidak dapat ditemukan. Ini terjadi karena sejumlah ASP.NET jenis Halaman Web dipindahkan ke namespace layanan yang berbeda untuk rilis Beta 3.
Solusi Sementara
Kosongkan folder Bin aplikasi yang disebarkan, salin rakitan baru ke folder (atau sebarkan ulang aplikasi), lalu mulai ulang aplikasi.
Pada IIS 7 atau IIS 7.5, permintaan dengan URL seperti berikut ini tidak dapat menemukan halaman yang memiliki ekstensi .cshtml atau .vbhtml :
http://www.example.com/ExampleSite/ExampleFile
Masalah ini muncul karena penulisan ulang URL tidak diaktifkan secara default untuk IIS 7 atau IIS 7.5. Skenario yang paling mungkin adalah Anda tidak melihat masalah saat menguji secara lokal menggunakan IIS Express, tetapi Anda mengalaminya ketika Anda menyebarkan situs web Anda ke situs web hosting.
Solusi Sementara
- Jika Anda memiliki kontrol atas komputer server, pada komputer server instal pembaruan yang dijelaskan dalam Pembaruan tersedia yang memungkinkan penangan IIS 7.0 atau IIS 7.5 tertentu untuk menangani permintaan yang URL-nya tidak berakhir dengan titik.
- Jika Anda tidak memiliki kontrol atas komputer server (misalnya, Anda menyebarkan ke situs web hosting), tambahkan yang berikut ini ke file Web.config situs web:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
Masalah: Menggunakan Proyek Aplikasi Web atau ASP.NET MVC dan halaman Web ASP.NET dalam aplikasi yang sama
Jika Anda menggunakan Halaman Web ASP.NET dalam proyek Aplikasi Web atau aplikasi MVC ASP.NET, Anda mungkin melihat kesalahan bahwa WebPageHttpApplication tidak dapat ditemukan.
Solusi Sementara
Jika Anda mendapatkan kesalahan ini, ubah kelas dasar tempat aplikasi berasal. Dalam file Global.asax, ubah baris berikut:public class MvcApplication : WebPageHttpApplication { ... }
Untuk ini:
public class MvcApplication : HttpApplication { ... }
Ini berlaku membalikkan perubahan yang diperkenalkan untuk rilis Beta 1 ASP.NET Web Pages dengan sintaks Razor.
Aplikasi yang menyertakan database Ringkas SQL Server dapat berjalan di komputer tempat SQL Server Compact tidak diinstal. Microsoft WebMatrix Beta 3 secara otomatis menyalin biner ini untuk Anda dan melakukan transformasi file Web.config yang sesuai.
Penanganan masalah Jika Anda perlu menyalin file-file ini dan membuat file Web.config berubah secara manual, lakukan hal berikut:
Salin rakitan mesin database ke folder Bin (dan subfolder) aplikasi di komputer target:
- Salin C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll ke \Bin
- Salin C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86
- Salin C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
Di folder akar situs web, buat atau buka file Web.config . (Di WebMatrix Beta 3, jenis file ini tersedia jika Anda mengklik Semua dalam kotak dialog Pilih Tipe File.)
Tambahkan elemen berikut sebagai turunan dari elemen konfigurasi> (bukan di dalam< elemen system.web>):<
<system.data> <DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0"></remove> <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.4.0" Description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> </DbProviderFactories> </system.data>
Jika Anda menggunakan Visual Basic (membuat file .vbhtml ), dan pembantu
Database
WebGrid
tidak akan berfungsi jika aplikasi diatur untuk menggunakan Medium Trust.Solusi Sementara
Atur sementara aplikasi untuk menggunakan Kepercayaan Penuh.
SQL Server Compact 4.0 tidak mengenali
Encrypt
propertiSqlCeConnection
kelas. Anda tidak boleh menggunakan properti ini untuk mengenkripsi file database. PropertiEncrypt
tidak digunakan lagi dalam rilis SQL Server Compact 3.5 dan hanya dipertahankan untuk kompatibilitas mundur.Solusi Sementara
Encryption Mode
Gunakan propertiSqlCeConnection
kelas untuk mengenkripsi file database SQL Server Compact 4.0. Contoh berikut menunjukkan cara membuat database SQL Server Compact 4.0 terenkripsi menggunakanEncryption Mode
properti :SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;") engine.CreateDatabase()
Untuk mengubah mode enkripsi database SQL Server Compact 4.0 yang ada, lakukan hal berikut:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;"); engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;") engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;")
Untuk mengenkripsi database SQL Server Compact 4.0 yang tidak terenkripsi, lakukan hal berikut:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf"); engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;") engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
DLL asli SQL Server Compact 4.0 memerlukan Microsoft Visual C++ 2008 Runtime Libraries (x86, IA64, dan x64), Service Pack 1.
Solusi Sementara
Instal .NET Framework 3.5 SP1. Ini juga menginstal Visual C++ 2008 Runtime Libraries SP1. Anda dapat mengunduh pustaka dari lokasi berikut:Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update
Catatan
Perhatikan bahwa menginstal .NET Framework 2.0, 3.0, atau 4 tidak menginstal Visual C++ 2008 Runtime Libraries SP1.
Masalah: Jika SQL Server Compact diinstal sebelum menginstal .NET Framework di komputer, nama invariant penyedianya tidak terdaftar dalam file .NET Framework machine.config
SQL Server Compact dapat diinstal pada komputer yang tidak menginstal .NET Framework karena SQL Server Compact memang memerlukan kerangka kerja .NET. Jika .NET Framework versi 3.5 maupun 4 tidak diinstal sebelum Anda menginstal SQL Server Compact, Penyiapan Ringkas SQL Server tidak mendaftarkan nama invariant penyedianya dalam file machine.config . Aplikasi apa pun yang bergantung pada entri Ringkas SQL Server dalam file machine.config akan gagal. Entri pendaftaran nama invariant di machine.config terlihat seperti contoh berikut:
<system.data> <DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0"></remove> <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.4.0" Description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> </DbProviderFactories> </system.data>
Solusi Sementara
Hapus instalan SQL Server Compact 4.0 CTP1. Unduh dan instal versi lengkap .NET Framework dari lokasi berikut:Microsoft .NET Framework 3.5 Paket layanan 1 (Paket Lengkap)
Rilis Microsoft .NET Framework 4.0 (Paket Lengkap)Kemudian instal ulang SQL Server Compact 4.0 SP1.
Masalah: Menginstal aplikasi dapat memakan waktu lama jika folder Dokumen Saya pengguna dialihkan ke berbagi jaringan
Solusi Sementara
Tidak ada. Aplikasi mungkin perlu waktu cukup lama untuk diinstal, tetapi akan diinstal dengan benar.
Masalah: Situs mungkin tidak berfungsi setelah penerbitan jika bidang "URL Tujuan" tidak diawali dengan http:// atau https://
Dalam kotak dialog Pengaturan Penerbitan, jika URL tujuan tidak dimulai dengan
http://
atauhttps://
, situs mungkin tidak berfungsi setelah penyebaran.Solusi Sementara
Pastikan sebelum Anda menerbitkan situs, URL tujuan dalam kotak dialog Terbitkan Pengaturan dimulai denganhttp://
atauhttps://
.
Masalah: Menerbitkan database MySQL gagal dengan kesalahan "Gagal menerbitkan database. Ini dapat terjadi jika database jarak jauh tidak dapat menjalankan skrip."
Kesalahan dapat terjadi karena sejumlah alasan. Salah satu alasan Anda dapat melihat kesalahan ini adalah jika skrip database berisi satu karakter kutipan (') dan kumpulan karakter default database MySQL tujuan bukan ke UTF-8.
Solusi Sementara
Atur set karakter default untuk database MySQL jarak jauh ke UTF-8.
Saat Anda menjalankan laporan untuk situs, jika Anda memasukkan teks dalam kotak Filter menurut URL dan klik Cari, tidak ada yang terjadi. Ini karena kontrol ini tidak berfungsi saat status Kelompokkan Menurut laporan diatur ke Jenis Masalah, yang merupakan default.
Penanganan masalah Di tab Kelompokkan Menurut pita, klik URL untuk mengelompokkan entri menurut URL sumbernya. Kotak teks dan tombol untuk memfilter entri berfungsi saat dalam status ini.
Menelusuri aplikasi WCF menghasilkan kesalahan seperti berikut:
Tidak dapat memuat file atau rakitan 'Microsoft.Web.Administration, Version=7.0.0.0, Culture=netral,PublicKeyToken=31bf3856ad364e35' atau salah satu dependensinya. Sistem tidak dapat menemukan file yang ditentukan
Ini terjadi karena rilis IIS Express Beta tidak mendukung WCF secara default.
Penanganan masalah Gunakan salah satu solusi berikut (solusi #2 memerlukan Microsoft Windows Vista atau yang lebih tinggi):
Salin rakitan Microsoft.Web.dll dan Microsoft.Web.Administration.dll dari lokasi penginstalan WebMatrix ke direktori bin aplikasi WCF. Secara default, WebMatrix diinstal di subfolder Microsoft WebMatrix di bawah folder Program Files sistem.
Di Microsoft Windows Vista atau yang lebih tinggi, buat symlink ke rakitan di direktori bin menggunakan perintah berikut. (Pendekatan ini memiliki keuntungan karena tidak membuat salinan rakitan.)
mklink Microsoft.Web.Administration.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll" mklink Microsoft.Web.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
Pasang dua rakitan di GAC. Dari prompt yang ditingkatkan, jalankan perintah berikut:
gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll" gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
WebMatrix Beta 3 tidak dapat melakukan tugas tertentu yang memerlukan elevasi, seperti menginstal komponen tambahan dalam situasi berikut:
- Pada Windows Vista atau Windows 7, Anda masuk dengan akun yang tidak memiliki hak administratif dan Kontrol Akun Pengguna (UAC) dinonaktifkan.
- Anda menggunakan Microsoft Windows XP atau Microsoft Windows Server 2003.
Solusi Sementara
Sebagian besar tugas di WebMatrix Beta 3 tidak memerlukan izin administratif. Bagi mereka yang melakukannya, Anda dapat melakukan operasi sebagai administrator, atau mengikuti langkah-langkah berikut:
- Pada Windows Vista atau Windows 7, aktifkan UAC.
- Pada Windows XP, tambahkan pengguna ke grup keamanan Administrator.
Opsi Situs dari Galeri Web dinonaktifkan jika Penginstal Platform Web 3.0 tidak diinstal.
Solusi Sementara
Instal Microsoft Web Platform Installer 3.0.
Pada Windows Server 2003, saat Anda meluncurkan halaman atau memulai IIS Express, IIS Express tidak dimulai. Untuk halaman Web, kesalahan ditampilkan yang menunjukkan bahwa aplikasi telah dimulai oleh pengguna non-administratif.
Solusi Sementara
Mulai WebMatrix Beta 3 sebagai pengguna administratif.
Google Chrome tidak ditampilkan dalam daftar browser di bawah Jalankan di tab Beranda .
Solusi Sementara
Beberapa versi Google Chrome tidak mendaftarkan diri dengan benar dengan fitur Program Default di Windows. Sebagai solusinya, mulai Google Chrome, klik menu Kustomisasi dan kontrol Google Chrome , klik Opsi, lalu klik Jadikan Google Chrome browser default saya.
Kotak dialog Kunci Asing tidak memungkinkan Anda memasukkan nama kunci utama dari tabel kunci utama.
Solusi Sementara
Ini disengaja. Anda tidak perlu memasukkan nama kunci utama dari tabel kunci utama.
Tombol Hubungan di bawah tab Tabel di ruang kerja Database dinonaktifkan untuk database Ringkas SQL Server.
Solusi Sementara
Tidak ada. SQL Server Compact tidak mendukung hubungan antar tabel.
Di SQL Server Compact 4.0, jika Anda tidak menentukan jenis data seperti
SqlDbType
atauDbType
untuk parameter dalam kueri berparameter, pengecualian akan dilemparkan saat kueri berjalan.Solusi Sementara
Secara eksplisit mengatur jenis data untuk parameter sepertiSqlDbType
atauDbType
. Ini sangat penting dalam kasus jenis data BLOB (image
danntext
). Gunakan kode seperti berikut:SqlCeEngine engine = new SqlCeEngine(connString); engine.CreateDatabase(); engine.Dispose(); SqlCeConnection conn = new SqlCeConnection(connString); conn.Open(); SqlCeCommand cmd = conn.CreateCommand(); cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);"; cmd.ExecuteNonQuery(); cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);"; SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128); SqlCeParameter paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText); paramName.Value = "Name1"; paramBlob.Value = "Name1".PadLeft(4001); cmd.ExecuteNonQuery();
Dim engine As SqlCeEngine = New SqlCeEngine(connString) engine.CreateDatabase() engine.Dispose() Dim conn As SqlCeConnection = New SqlCeConnection(connString) conn.Open() Dim cmd As SqlCeCommand = conn.CreateCommand() cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);" cmd.ExecuteNonQuery() cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);" Dim paramName As SqlCeParameter Dim paramBlob As SqlCeParameterparamName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128) paramName.Value = "Name1" paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText) paramBlob.Value = "Name1".PadLeft(4001) cmd.ExecuteNonQuery()
Untuk informasi selengkapnya tentang WebMatrix Beta 3, lihat situs web berikut ini: