WebMatrix ve ASP.NET Web Sayfaları (Razor) Beta 3 Yayını Benioku Dosyası
WebMatrix ve ASP.NET Web Sayfaları (Razor) Beta 3 Yayını Benioku Dosyası
9 Kasım 2010
Microsoft WebMatrix Beta, dakikalar içinde yüklenen ücretsiz bir web geliştirme yığınıdır. Tek ve tümleşik bir deneyim oluşturmak için bir web sunucusunu veritabanı ve programlama çerçeveleriyle tümleştirir. WebMatrix Beta'yı kullanarak kendi ASP.NET veya PHP web sitenizi kodlayabilir, test edebilir ve yayımlayabilirsiniz ya da DotNetNuke, Umbraco, WordPress veya Joomla gibi popüler açık kaynak uygulamaları kullanarak yeni bir web sitesi başlatmak için WebMatrix Beta'yı kullanabilirsiniz. WebMatrix Beta, web sitenizi İnternet'te çalıştıracak olan güçlü web sunucusu, veritabanı altyapısı ve çerçeve ortamını kullanır ve bu da geliştirmeden üretime geçişi sorunsuz ve sorunsuz hale getirir.
Not
WebMatrix artık ASP.NET Web Sayfaları için tümleşik bir geliştirme ortamı olarak önerilmez. Visual Studio veya Visual Studio Code kullanın.
Yükleme sırasında sorun yaşıyorsanız Microsoft Web Platformu Yükleyicisi sorunlarını giderme bölümüne bakın.
Sorun: WebMatrix Beta 3 yalnızca Microsoft .NET Framework 4 destekleyen platformlarda kullanılabilir
WebMatrix Beta için .NET Framework sürüm 4 gereklidir. Bazı durumlarda, WebMatrix Beta yükleyicisi desteklenen yapılandırma kümesinin parçası olmayan bir platforma yüklemeyi denemenize olanak tanır. Özellikle, SP1 güncelleştirmesi olmayan Windows Vista, WebMatrix Beta yüklemesine başlamanıza olanak sağlar, ancak .NET Framework 4 bileşeni başarısız olur ve yüklemenizi engeller.
Geçici çözüm
Aşağıdakileri içeren desteklenen bir platforma yükleyin:
- Windows 7
- Windows Server 2008
- Windows Server 2008 R2
- Windows Vista SP1 veya sonraki sürümü
- Windows XP SP3
- Windows Server 2003 SP2
Sorun: Microsoft Visual Studio 2008, Microsoft Visual Studio 2008 SP1 olmadan yüklüyse WebMatrix Beta 3 yüklenemiyor
Geçici çözüm
Microsoft İndirme Merkezi'nden Microsoft Visual Studio 2008 Service Pack 1'i yükleyin.
SQL Server Compact 4.0 için yönetilen derlemeler, SQL Server Compact 4.0'ı 64 bit bilgisayara yüklediğinizde ve bilgisayarda yalnızca .NET Framework 3.5 SP1 İstemci Profili yüklü olduğunda genel derleme önbelleğine (GAC) yerleştirilmemiştir. GAC'de yüklü olmayan yönetilen derlemeler şunlardır:
- System.Data.SqlServerCe.dll (ADO.NET sağlayıcı)
- System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework )
Geçici çözüm
SQL Server Compact 4.0'ı kaldırın. .NET Framework 3.5 SP1'in tam sürümünü aşağıdaki konumdan indirin ve yükleyin:Microsoft .NET Framework 3.5 Service pack 1 (Tam Paket)
Ardından SQL Server Compact 4.0'ı yeniden yükleyin.
Komut satırı seçenekleri kullanılarak SQL Server Compact'ın kaldırılması bu sürümde çalışmaz.
Geçici çözüm
Microsoft SQL Server Compact 4.0'ı kaldırmak için Windows Denetim Masası'daki Programlar ve Özellikler'i kullanın.
Belgenin bu bölümünde Razor söz dizimi içeren ASP.NET Web Sayfalarının Beta 3 sürümündeki yeni özellikler, değişiklikler ve bilinen sorunlar açıklanmaktadır.
Yeni
Html.Raw
yöntem, kodlanmış çıkışı işlemek yerine HTML işaretlemesini işaretleme olarak işlemenizi sağlar. (Varsayılan olarak, ASP.NET Razor dizeleri işlemeden önce kodlar.) Söz dizimi şöyledir:
Html.Raw(value)
Aşağıdaki örnekte nasıl kullanılacağı gösterilmektedir
Html.Raw
:@* Inserts literal markup into the page as specified in the value string. *@ @Html.Raw("<div>Hello <em>world</em>!</div>")
HrefAttribute
sınıfının yöntemiWebPage
kaldırıldı. Bu yardımcı, URL'lerdeki güvenli olmayan karakterleri kodlamak için kullanıldı. ASP.NET Razor dizeleri otomatik olarak kodladığı için artık gerekli değildir. (Kodlanmamış dizeleri işlemek için yeniHtml.Raw
yöntemi kullanın.)
Beta 3 sürümünde, ASP.NET söz dizimi kullanılarak oluşturulan yardımcıları ayrıştırma şeklini
@helper
değiştirir. Özünde@helper
söz dizimi artık kod içerebilen bir işaretleme bloğu yerine kod bloğu olarak ayrıştırılır. Bu nedenle, yardımcı içindeki kodun bloklar içine@{ }
alınması gerekmez. Buna karşılık, yardımcının içindeki işaretlemenin açıkça HTML öğelerine veya ASP.NET Razor<text></text>
etiketlerine eklenmesi gerekir.Örneğin, Beta 3 sürümünde aşağıdaki
@helper
söz dizimi çalışır:@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> }
Beta 3 sürümünde, bu yardımcının aşağıdaki örneğe benzer şekilde değiştirilmesi gerekir:
@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> }
Yardımcıdaki
@{ }
ilk kodun etrafındaki karakterlerin artık kullanılmadığını fark edin. Bunun nedeni, yardımcıların içeriğinin varsayılan olarak bir kod bloğu olarak ele alınmalarıdır. Yardımcı, açılış<a>
etiketiyle başlayan işaretlemeyi işler. Yardımcının kapatma etiketi (örneğin, etiketler) içermeyen düz metin veya etiketler işlemesi gerekiyorsa,<meta>
işlenecek içerik etiketlerde<text></text>
olmalıdır.
WebPageContext.HttpContext
özelliği kaldırıldı. Bunun yerineHttpContext.Current
kullanın. (ÖzellikWebPageContext.HttpContext
bunu sarmaladı.)
Yardımcı
Aşağıdaki türler derlemeye
WebMatrix.WebData
taşındı:
ExtendedMembershipProvider
SimpleMembershipProvider
SimpleRoleProvider
WebSecurity
TagBuilder
sınıfı System.Web.WebPages.dll derlemesine taşındı. Daha önce bu, ASP.NET MVC'nin parçası olan bir derlemedeydi. Bu değişiklik, sınıfını kullanmakTagBuilder
için ASP.NET MVC yüklemeniz gerekmediği anlamına gelir.Ancak, sınıfı hala ad alanındadır
System.Web.Mvc
. sınıfınıTagBuilder
kullanmak için (örneğin, özel ASP.NET Razor yardımcısında), ad alanına başvurmanız gerekir (örneğin, kodunuza ekleyerek@using System.Web.Mvc
).
Beta 3 sürümünde, tek bir alan veya alan kümesi için doğrulamayı devre dışı bırakmak için, doğrulamanın dışında tutulacak alanların adını veya adlarını geçirerek yöntemini çağırabilirsiniz
Validation.Exclude
. Beta 3 sürümünde doğrulamayı atlamak için yeni bir söz dizimi kullanılabilir.Validation
Beta 3'te kullanılan yöntem kaldırıldı.Not
İstek doğrulamayı devre dışı bırakmazsanız, kullanıcılar HTML işaretlemesini karşıya yüklemeye çalışırsa (örneğin, bir sayfada zengin bir metin düzenleyicisi kullanarak), web sitesi istemciden tehlikeli olabilecek bir Request.Form değeri algılandı ve kullanıcı girişi kabul edilmedi gibi bir hata bildirir. İstek doğrulamayı devre dışı bırakırsanız, ASP.NET Core'da Siteler Arası Betik Oluşturma 'yı (XSS) önleyerek potansiyel olarak tehlikeli işaretleme veya betik içermediğinden emin olmak için kullanıcı girişini el ile denetlemeniz gerekir.
Otomatik istek doğrulamasını
Request.Unvalidated
devre dışı bırakmak için yöntemini çağırın ve istek doğrulamasını atlamak istediğiniz alanın adını veya başka bir post nesnesini geçirin. ,QueryString
,Cookies
veServerVariables
koleksiyonlarındakiForm
tüm öğeler için doğrulamayı atlamak için bu yöntemi kullanabilirsiniz. Aşağıdaki örneklerde yönteminin nasıl kullanılacağı gösterilmektedirUnvalidated
:Request["userInput"]; // Validated Request.Unvalidated("userInput"); // Validation bypassed Request.Unvalidated().Form["userInput"]; // Validation bypassed Request.QueryString["userPreference"]; // Validated Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed
ASP.NET Razor web sitesinin üyelik sağlayıcısını
WebSecurity.InitializeDatabaseConnection
başlatmak için yöntemini çağırırsınız. (WebMatrix'te, Başlangıç Sitesi şablonu _AppStart.cshtml dosyasında bu yönteme yönelik bir çağrı içerir.) Bu yönteminautoCreateTables
parametresi true olarak ayarlanırsa (varsayılan olarak Başlangıç Sitesi şablonunda true olarak ayarlanır) ve yönteme tanınmayan bir tablo adı geçirilirse (ikinci parametre), yöntem hata oluşturmaz. Bunun yerine, tabloyu otomatik olarak oluşturur.Üyelik için özel bir kullanıcı tablosu kullanmayı amaçlıyor ancak yönteme yanlış tablo adını
WebSecurity.InitializeDatabaseConnection
geçirmek istiyorsanız bu sorun olabilir. Yöntem, belirttiğiniz tablo yoksa varsayılan olarak bir hata oluşturmadığından ve bunun yerine yeni bir tablo oluşturduğundan, uygulama çalışıyor gibi görünebilir. Ancak, özel kullanıcı tablonuzu (ve içindeki alanları) kullanan uygulama kodu sonunda beklenmeyen hatalarla başarısız olabilir.Geçici çözüm
yönteminde geçirilen adınInitializeDatabaseConnection
üyelik veritabanındaki kullanıcı profili tablosuyla eşleştiğinden emin olun veya parametresinin false olarak ayarlandığındanautoCreateTables
emin olun.
WebMatrix Web uygulaması SQL Server Express kullanıyorsa ve Windows 7 veya Windows Server 2008 R2 üzerinde IIS 7.5 çalıştırıyorsa, SQL Server'ın kullanıcının yerel uygulama yolunu çalışma zamanında alamadığını belirten bir hata görebilirsiniz.
Geçici çözüm Uygulamanın altında çalıştığı Windows hesabının (genellikle AĞ HİzMETİ) uygulamanın kök klasörleri ve App_Data gibi alt klasörler için okuma/yazma izinlerine sahip olduğundan emin olun. Daha ayrıntılı bilgi için bkz . SQL Server Express kullanıcısı ile ilgili sorunlar ve web uygulaması projelerini ASP.net.
Sorun: Visual Studio'da özel derlemeler (DLL' ler) için ad alanları otomatik olarak içeri aktarılmıyor
Visual Studio'daki bir projede özel derlemeler kullanıyorsanız, bu derlemelerde bildirilen ad alanları tasarım zamanında otomatik olarak içeri aktarılmaz. Sonuç olarak, özel türlere başvurular tasarım zamanında tanınmayabilir ve Visual Studio'da tanınmadı olarak işaretlenir ("dalgalı çizgi kullanılarak"). Bu sorun yalnızca Visual Studio'da tasarım zamanında oluşur; uygulamanın kendisi düzgün çalışır.
Geçici çözüm
Tasarım zamanında tanınmayan varlıklara başvuran birusing
deyimi (imports
Visual Basic'te) ekleyin.
Sorun: Visual Studio IntelliSense ve proje şablonları yalnızca ASP.NET MVC sürüm 3'te kullanılabilir
ASP.NET Web Sayfalarını yüklemek, Visual Studio için IntelliSense ve ASP.NET Web Sayfaları uygulamaları için proje şablonları gibi araçları da yüklemez.
Geçici çözüm Visual Studio'daki ASP.NET Web Sayfaları uygulamalarında IntelliSense ve proje şablonlarını kullanmak için, Web Platformu Yükleyicisi veya tek başına yükleyici aracılığıyla ASP.NET MVC 3 RC yükleyin.
Beta 3'e yükseltildikten sonra, yardımcı sınıfın (örneğin,
Geçici çözüm
Sitedeki yardımcılara yapılan çağrıları açıklama satırı yapın, _Admin sayfasını çalıştırın ve kullanmak istediğiniz yardımcıları içeren paketi veya paketleri yükleyin. Paketi yükledikten sonra yardımcılara başvuran satırların açıklamasını kaldırabilirsiniz.
Sorun: Beta 3 ASP.NET Razor derlemelerini Bin klasörüne dağıtma, barındırma sitelerinde çalışmayabilir
ASP.NET Web Sayfaları web sitesini bir barındırma sitesine dağıtırsanız ve ASP.NET Razor Beta 3 derlemelerini sitenin Bin klasörüne dağıtırsanız, aşağıdakiler de dahil olmak üzere hatalarla karşılaşabilirsiniz:
Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Barındırma sağlayıcısı ASP.NET Web Sayfaları Beta 1 derlemelerini sunucunun genel uygulama önbelleğine (GAC) yüklediyse bu durum oluşabilir. GAC'deki derlemeler, Bin klasörüne yerel olarak yüklenen derlemelere göre önceliklidir.
Geçici çözüm Gördüğünüz hataların sağlayıcının derleme sürümleriyle sizinki arasındaki çakışmadan kaynaklandığını onaylamak için barındırma sağlayıcınıza başvurun. Bu durumda, barındırma sağlayıcısının sunucunun GAC'sindeki derlemeleri güncelleştirmesini isteyin.
Siteyi çalıştıran sunucu bir ara sunucunun arkasındaysa, sitenizin dışından gelen bilgileri okuyabilmek için Web.config dosyasında ara sunucu bilgilerini yapılandırmanız gerekebilir. Örneğin, yardımcıyı
ReCaptcha
kullanırsanız, yardımcı reCAPTCHA hizmetiyle iletişim kurar, ancak ara sunucunuz tarafından engellenebilir. Benzer şekilde, paket yöneticisi tarafından kullanılan akış gibi ASP.NET Web Sayfalarında kullanılan akışlar ara sunucu yapılandırması gerektirebilir.Dış hizmetle çalışırken veya paket akışıyla çalışırken sorunlarla karşılaşıyorsanız aşağıdaki öğeleri uygulamanızın kök Web.config dosyasına yerleştirin:
<system.net> <defaultProxy> <proxy autoDetect="False" proxyaddress="[proxy URL]"/> </defaultProxy> </system.net>
Ara sunucuyu yapılandırma hakkında daha fazla bilgi için MSDN Web sitesindeki proxy> Öğesi (Ağ Ayarları) bölümüne bakın<.
ASP.NET Web Sayfalarının Beta 1 sürümünü Razor söz dizimi ile daha önce yüklediyseniz ve ardından Beta 3 sürümünü yüklediyseniz, Microsoft.Web.Infrastructure.dll dışındaki tüm uygun derlemeler GAC'ye yüklenir. Sonuç olarak, Razor sayfalarını ASP.NET çalıştırdığınızda, Microsoft.Web.Infrastructure.dll yüklenemediğine işaret eden bir hata görürsünüz.
Beta 3 sürümünü temiz bir bilgisayara yüklediyseniz bu sorun oluşmaz.
Geçici çözüm
Denetim Masası ASP.NET Web Sayfalarını kaldırın. Ardından Beta 3 sürümünü yeniden yükleyin.
Sorun: .NET Framework sürüm 4'ün kaldırılması Razor Söz Dizimi ile ASP.NET Web Sayfalarını devre dışı bırakır
.NET Framework sürüm 4'i kaldırıp yeniden yüklerseniz, Razor söz dizimi içeren web sayfalarını ASP.NET devre dışı bırakılır. .cshtml uzantısına sahip sayfalar düzgün çalışmıyor. ASP.NET Web Sayfaları, makine kök Web.config dosyasına bir derleme kaydeder ve .NET Framework'ün kaldırılması bu dosyayı kaldırır. .NET Framework'ün yeniden yüklenmesi, yapılandırma dosyasının yeni bir sürümünü yükler, ancak ASP.NET Web Sayfaları derlemesi için başvuru eklemez.
Geçici çözüm .NET Framework'i yeniden yükledikten sonra Razor söz dizimi ile ASP.NET Web Sayfalarını yeniden yükleyin. Bu, genellikle aşağıdaki konumda yer alan makine kökündeki Web.config dosyasına aşağıdaki öğeyi ekler:
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>
Dağıtım sırasında, ASP.NET Web Sayfaları derlemelerinin (örneğin, Microsoft.WebPages.dll) sunucudaki web sitesinin Bin klasörüne kopyaları. (Bu, dağıtım sırasında veya geliştirici derlemeleri açıkça kopyaladığı için otomatik olarak olmuş olabilir.) Ancak, Beta 3 sürümü yüklendiğinde, belirli türlerin bulunamadığı hatalar gibi hatalar oluşur. Bunun nedeni, beta 3 sürümü için bir dizi ASP.NET Web Sayfası türünün farklı ad alanlarına taşınmasıdır.
Geçici çözüm
Dağıtılan uygulamanın Bin klasörünü temizleyin, yeni derlemeleri klasörüne kopyalayın (veya uygulamayı yeniden dağıtın) ve ardından uygulamayı yeniden başlatın.
IIS 7 veya IIS 7.5'te, aşağıdaki gibi bir URL'ye sahip istekler .cshtml veya .vbhtml uzantısına sahip sayfaları bulamaz:
http://www.example.com/ExampleSite/ExampleFile
URL yeniden yazma özelliği IIS 7 veya IIS 7.5 için varsayılan olarak etkinleştirilmediğinden bu sorun ortaya çıkar. En benzer senaryo, IIS Express'i yerel olarak test ederken sorunu görmemenizdir, ancak web sitenizi bir barındırma web sitesine dağıtırken bunu yaşarsınız.
Geçici çözüm
- Sunucu bilgisayar üzerinde denetiminiz varsa, sunucu bilgisayarına belirli IIS 7.0 veya IIS 7.5 işleyicilerinin URL'leri noktayla bitmeyen istekleri işlemesini sağlayan bir güncelleştirme kullanılabilir bölümünde açıklanan güncelleştirmeyi yükleyin.
- Sunucu bilgisayarı üzerinde denetiminiz yoksa (örneğin, bir barındırma web sitesine dağıtıyorsanız), web sitesinin Web.config dosyasına aşağıdakileri ekleyin:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
Sorun: Aynı uygulamada Web Uygulaması Projesi'ni veya ASP.NET MVC ve ASP.NET Web sayfalarını kullanma
Bir Web Uygulaması projesinde veya ASP.NET MVC uygulamasında ASP.NET Web Sayfaları kullanıyorsanız, WebPageHttpApplication'ın bulunamadığına dair bir hata görebilirsiniz.
Geçici çözüm
Bu hatayı alırsanız, uygulamanın türetildiği temel sınıfı değiştirin. Global.asax dosyasında aşağıdaki satırı değiştirin:public class MvcApplication : WebPageHttpApplication { ... }
Bunun için:
public class MvcApplication : HttpApplication { ... }
Bu, Razor söz dizimi içeren ASP.NET Web Sayfalarının Beta 1 sürümü için sunulan değişikliği tersine çevirir.
SQL Server Compact veritabanları içeren uygulamalar, SQL Server Compact'ın yüklü olmadığı bir bilgisayarda çalıştırılabilir. Microsoft WebMatrix Beta 3 bu ikili dosyaları sizin için otomatik olarak kopyalar ve uygun Web.config dosya dönüşümlerini gerçekleştirir.
Geçici çözüm Bu dosyaları kopyalamanız ve Web.config dosyası değişikliklerini el ile yapmanız gerekiyorsa, aşağıdakileri yapın:
Veritabanı altyapısı derlemelerini hedef bilgisayardaki uygulamanın Bin klasörüne (ve alt klasörlerine) kopyalayın:
- C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll dosyasını \Bin'e kopyalayın
- C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86 konumuna kopyalayın
- C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
Web sitesinin kök klasöründe bir Web.config dosyası oluşturun veya açın. (WebMatrix Beta 3'te, bu dosya türüne tıkladığınızda kullanılabilirTümü, Dosya Türü Seç iletişim kutusunda bulunur.)
Aşağıdaki öğeyi yapılandırma> öğesinin< alt öğesi olarak ekleyin (system.web> öğesinin <içinde değil):
<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>
Visual Basic kullanıyorsanız (.vbhtml dosyaları oluşturuyorsanız),
Database
uygulama Orta Güven kullanacak şekilde ayarlandıysa veWebGrid
yardımcıları çalışmaz.Geçici çözüm
Uygulamayı geçici olarak Tam Güven kullanacak şekilde ayarlayın.
SQL Server Compact 4.0 sınıfın
Encrypt
SqlCeConnection
özelliğini tanımaz. Veritabanı dosyalarını şifrelemek için bu özelliği kullanmamalısınız.Encrypt
özelliği SQL Server Compact 3.5 sürümünde kullanım dışı bırakıldı ve yalnızca geriye dönük uyumluluk için korundu.Geçici çözüm
Encryption Mode
SQL Server Compact 4.0 veritabanı dosyalarını şifrelemek için sınıfının özelliğiniSqlCeConnection
kullanın. Aşağıdaki örnekte, özelliğini kullanarak şifrelenmiş bir SQL Server Compact 4.0 veritabanının nasıl oluşturulacağı gösterilmektedirEncryption Mode
: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()
Mevcut bir SQL Server Compact 4.0 veritabanının şifreleme modunu değiştirmek için aşağıdakileri yapın:
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>;")
Şifrelenmemiş bir SQL Server Compact 4.0 veritabanını şifrelemek için aşağıdakileri yapın:
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>;")
SQL Server Compact 4.0'ın yerel DLL'leri Için Microsoft Visual C++ 2008 Çalışma Zamanı Kitaplıkları (x86, IA64 ve x64), Service Pack 1 gerekir.
Geçici çözüm
.NET Framework 3.5 SP1'i yükleyin. Bu, Visual C++ 2008 Çalışma Zamanı Kitaplıkları SP1'i de yükler. Kitaplıkları aşağıdaki konumdan indirebilirsiniz:Microsoft Visual C++ 2008 Service Pack 1 Yeniden Dağıtılabilir Paketi ATL Güvenlik Güncelleştirmesi
Not
.NET Framework 2.0, 3.0 veya 4 yüklemesinin Visual C++ 2008 Çalışma Zamanı Kitaplıkları SP1'i yüklemediğini unutmayın.
Sorun: BILGISAYARA .NET Framework yüklenmeden önce SQL Server Compact yüklüyse, sağlayıcı sabit adı .NET Framework machine.config dosyasına kaydedilmez
SQL Server Compact, .NET Framework'ü gerektirdiğinden, SQL Server Compact yüklü .NET Framework'e sahip olmayan bir makineye yüklenebilir. SQL Server Compact'ı yüklemeden önce .NET Framework sürüm 3.5 veya 4 yüklü değilse, SQL Server Compact Kurulumu sağlayıcı sabit adını machine.config dosyasına kaydetmez. machine.config dosyasındaki SQL Server Compact girişini kullanan tüm uygulamalar başarısız olur. machine.config dosyasındaki sabit ad kayıt girişi aşağıdaki örneğe benzer:
<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>
Geçici çözüm
SQL Server Compact 4.0 CTP1'i kaldırın. .NET Framework'ün tam sürümlerini aşağıdaki konumdan indirin ve yükleyin:Microsoft .NET Framework 3.5 Service pack 1 (Tam Paket)
Microsoft .NET Framework 4.0 Sürümü (Tam Paket)Ardından SQL Server Compact 4.0 SP1'i yeniden yükleyin.
Sorun: Kullanıcının Belgelerim klasörü bir ağ paylaşımına yeniden yönlendirilirse bir uygulamanın yüklenmesi uzun sürebilir
Geçici çözüm
Yok. Uygulamanın yüklenmesi biraz zaman alabilir, ancak doğru şekilde yüklenir.
Sorun: "Hedef URL" alanına http:// veya https:// ön eki eklenmemişse, site yayımladıktan sonra çalışmayabilir
Yayımlama Ayarları iletişim kutusunda, hedef URL veya
https://
ilehttp://
başlamazsa, site dağıtımdan sonra çalışmayabilir.Geçici çözüm
Bir siteyi yayımlamadan önce, Yayımlama Ayarları iletişim kutusundaki hedef URL'nin veyahttps://
ilehttp://
başladığından emin olun.
Sorun: MySQL veritabanını yayımlama işlemi "Veritabanı yayımlanamadı. Uzak veritabanı betiği çalıştıramazsa bu durum oluşabilir."
Hata çeşitli nedenlerle oluşabilir. Bu hatayı görmenizin bir nedeni, veritabanı betiğinin tek bir tırnak karakteri (') içermesi ve hedef MySQL veritabanının varsayılan karakter kümesinin UTF-8 olmamasıdır.
Geçici çözüm
Uzak MySQL veritabanı için varsayılan karakter kümesini UTF-8 olarak ayarlayın.
Bir site için rapor çalıştırdığınızda, URL'ye göre filtrele kutusuna metin girip Ara'ya tıklarsanız hiçbir şey olmaz. Bunun nedeni, raporun Gruplandırma Ölçütü durumu varsayılan olan Sorun Türü olarak ayarlandığında bu denetimin işlevsel olmamasıdır.
Geçici çözüm Şeridin Gruplandırma Ölçütü sekmesinde, girişleri kaynak URL'lerine göre gruplandırmak için URL'ye tıklayın. Bu durumdayken girdileri filtrelemek için metin kutusu ve düğme işlevseldir.
WCF uygulamasına göz atmak aşağıdakine benzer bir hatayla sonuçlanır:
'Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35' dosyası veya derlemesi veya bağımlılıklarından biri yüklenemedi. Sistem belirtilen dosyayı bulamıyor.
Bunun nedeni IIS Express Beta sürümünün wcf'yi varsayılan olarak desteklememesidir.
Geçici çözüm Aşağıdaki geçici çözümlerden birini kullanın (geçici çözüm #2, Microsoft Windows Vista veya üzerini gerektirir):
Microsoft.Web.dll ve Microsoft.Web.Administration.dll derlemelerini WebMatrix yükleme konumundan WCF uygulamasının bin dizinine kopyalayın. Varsayılan olarak, WebMatrix, Sistemin Program Dosyaları klasörünün altındaki Microsoft WebMatrix alt klasörüne yüklenir.
Microsoft Windows Vista veya üzeri bir sürümde, aşağıdaki komutları kullanarak bin dizinindeki derlemelere bir symlink oluşturun. (Bu yaklaşım, derlemelerin bir kopyasını oluşturmama avantajına sahiptir.)
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"
GAC'de iki derlemeyi yükleyin. Yükseltilmiş bir istemden aşağıdaki komutları çalıştırın:
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, aşağıdaki durumlarda ek bileşenler yükleme gibi yükseltme gerektiren bazı görevleri gerçekleştiremez:
- Windows Vista veya Windows 7'de, yönetici ayrıcalıklarına sahip olmayan bir hesapla oturum açtınız ve Kullanıcı Hesabı Denetimi (UAC) devre dışı bırakıldı.
- Microsoft Windows XP veya Microsoft Windows Server 2003 kullanıyorsunuz.
Geçici çözüm
WebMatrix Beta 3'teki görevlerin çoğu yönetici izni gerektirmez. Bunu yapanlar için, işlemi yönetici olarak gerçekleştirebilir veya şu adımları izleyebilirsiniz:
- Windows Vista veya Windows 7'de UAC'yi etkinleştirin.
- Windows XP'de kullanıcıyı Yöneticiler güvenlik grubuna ekleyin.
Web Platformu Yükleyicisi 3.0 yüklü değilse, Web Galerisi'nden Site seçeneği devre dışı bırakılır.
Geçici çözüm
Microsoft Web Platformu Yükleyicisi 3.0'ı yükleyin.
Windows Server 2003'te, bir sayfayı başlattığınızda veya IIS Express'i başlattığınızda IIS Express başlatılmaz. Web sayfaları için, uygulamanın yönetici olmayan bir kullanıcı tarafından başlatıldığını gösteren bir hata görüntülenir.
Geçici çözüm
WebMatrix Beta 3'i yönetici kullanıcı olarak başlatın.
Google Chrome, Giriş sekmesinde çalıştır altındaki tarayıcı listesinde görüntülenmez.
Geçici çözüm
Google Chrome'un bazı sürümleri, Windows'daki Varsayılan Programlar özelliğine kendilerini doğru kaydetmez. Geçici bir çözüm olarak Google Chrome'ı başlatın, Google Chrome'un özelleştir ve denetle menüsüne tıklayın, Seçenekler'e tıklayın ve ardından Google Chrome'un varsayılan tarayıcım olmasını sağla'ya tıklayın.
Yabancı Anahtar iletişim kutusu, birincil anahtar tablosundan birincil anahtar adını girmenize izin vermez.
Geçici çözüm
Bu bilinen bir durumdur. Birincil anahtar tablosundan birincil anahtarın adını girmeniz gerekmez.
Veritabanları çalışma alanında Tablo sekmesinin altındaki İlişkiler düğmesi, SQL Server Compact veritabanları için devre dışıdır.
Geçici çözüm
Yok. SQL Server Compact tablolar arasındaki ilişkileri desteklemez.
SQL Server Compact 4.0'da, parametreli sorgulardaki parametreler için veya
DbType
gibiSqlDbType
bir veri türü belirtmezseniz, sorgu çalıştırıldığında bir özel durum oluşturulur.Geçici çözüm
veyaDbType
gibiSqlDbType
parametreler için veri türünü açıkça ayarlayın. Blob veri türleri (image
ventext
) söz konusu olduğunda bu kritik öneme sahiptir. Aşağıdaki gibi bir kod kullanın: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()
WebMatrix Beta 3 hakkında daha fazla bilgi için aşağıdaki web sitelerine bakın: