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

İçindekiler

Genel bakış

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.

Yükleme

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.

Uygulamaları Yayımlama Yönergeleri

Bkz. Uygulamaları Yayımlamak için Adım Adım Yönergeler

Yeni Özellikler, Değişiklikler ve Bilinen Sorunlar

WebMatrix Beta 3 Yüklemesi

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.

Sorun: SQL Server Compact 4.0 için bazı derlemeler GAC'de yüklü değil

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.

Sorun: Komut satırı kullanılarak SQL Server Compact kaldırılamıyor

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.

ASP.NET Web Sayfaları

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.

Razor Söz Dizimi ile ASP.NET Web Sayfaları için Beta 3'teki Yeni Özellikler

Yeni: "Html.Raw" yöntemi kodlanmamış işaretlemeyi işler

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>")

Razor Söz Dizimi ile ASP.NET Web Sayfaları için Beta 3'teki değişiklikler

Değişiklik: "HrefAttribute" yöntemi kaldırıldı

HrefAttribute sınıfının yöntemi WebPage 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 yeni Html.Raw yöntemi kullanın.)

Değişiklik: Bildirim temelli "@helper" yardımcılarının söz dizimi değiştirildi

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.

Değişiklik: "WebPageContext.HttpContext" kaldırıldı

WebPageContext.HttpContext özelliği kaldırıldı. Bunun yerine HttpContext.Current kullanın. (Özellik WebPageContext.HttpContext bunu sarmaladı.)

Değiştir: "Facebook" yardımcısı yeni pakete taşındı

YardımcıFacebook, yardımcı ve ek işlevleri içeren Facebook.Helper kitaplığına Facebook taşındı. Bu kitaplığı, ASP.NET Sayfaları kullanmaya başlama öğreticisindeki "Paket Yöneticisi Yardımcıları Yükleme" bölümünde açıklandığı gibi ayrı bir paket olarak yüklemeniz gerekir.

Değişiklik: Üyelik, Rol ve Güvenlik türleri yeni derlemeye taşınır

Aşağıdaki türler derlemeye WebMatrix.WebData taşındı:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Değişiklik: "TagBuilder" sınıfı System.Web.WebPages.dll derlemeye taşındı

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ı kullanmak TagBuilder 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 ).

Değişiklik: İstek doğrulama söz dizimi değiştirildi; "Doğrulama" sınıfı kaldırıldı

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, Cookiesve ServerVariables koleksiyonlarındaki Formtüm öğeler için doğrulamayı atlamak için bu yöntemi kullanabilirsiniz. Aşağıdaki örneklerde yönteminin nasıl kullanılacağı gösterilmektedir Unvalidated :

Request["userInput"]; // Validated 
Request.Unvalidated("userInput"); // Validation bypassed
Request.Unvalidated().Form["userInput"]; // Validation bypassed

Request.QueryString["userPreference"]; // Validated 
Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed

Razor Söz Dizimi ile ASP.NET Web Sayfaları için Bilinen Sorunlar

Sorun: Üyelik için özel kullanıcı tablosu kullanılırken beklenmeyen davranış

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öntemin autoCreateTables 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ın InitializeDatabaseConnection üyelik veritabanındaki kullanıcı profili tablosuyla eşleştiğinden emin olun veya parametresinin false olarak ayarlandığından autoCreateTables emin olun.

Sorun: "SQL Server'ın kullanıcı örneği oluşturulamadı" hatası

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 bir using 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.

Sorun: "<yardımcı> sınıf bulunamıyor" hatası

Beta 3'e yükseltildikten sonra, yardımcı sınıfın (örneğin, Facebook sınıf) bulunamadığını belirten bir hata görebilirsiniz. Beta 2'den başlayarak ve Beta 3'te devam eden yardımcılar açıkça yüklemeniz gereken paketlere taşındı. Mevcut siteler bu paketleri içerecek şekilde yükseltilmemiştir; Bu, \Belgelerim\IISExpress veya \Belgelerim\Web Sitelerim klasörlerindeki siteleri içerir. Özellikle, yardımcıya başvuru içeren Sitelerim'de (WebSite1) varsayılan siteyi Twitter kullanırsanız bu hatayı görürsünüz.

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.

Sorun: Ara sunucu aracılığıyla akışları veya diğer dış verileri okuma

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

Sorun: "Microsoft.Web.Infrastructure.dll yüklenemiyor" hatası

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>

Sorun: Daha önce Bin klasöründeki ASP.NET derlemelerle dağıtılan uygulamalar hatalarla karşılaşıyor

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.

Sorun: Uzantısız URL'ler IIS 7 veya IIS 7.5'te .cshtml/.vbhtml dosyalarını bulamıyor

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

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

Sorun: SQL Server Compact yüklü olmayan bir bilgisayara uygulama dağıtma

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:

  1. 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
  2. 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.)

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

Sorun: Visual Basic'te Veritabanı ve WebGrid yardımcıları Orta Güven'de çalışmıyor

Visual Basic kullanıyorsanız (.vbhtml dosyaları oluşturuyorsanız), Database uygulama Orta Güven kullanacak şekilde ayarlandıysa ve WebGrid yardımcıları çalışmaz.

Geçici çözüm
Uygulamayı geçici olarak Tam Güven kullanacak şekilde ayarlayın.

SQL Server Compact

Sorun: "Encrypt" özelliği tanınmıyor

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ğini SqlCeConnection kullanın. Aşağıdaki örnekte, özelliğini kullanarak şifrelenmiş bir SQL Server Compact 4.0 veritabanının nasıl oluşturulacağı gösterilmektedir Encryption 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>;")

Sorun: Microsoft Visual C++ 2008 çalışma zamanı kitaplıkları gereklidir

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.

Uygulamaları Yükleme

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.

Uygulamaları Yayımlama

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://ile http:// 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 veya https://ile http:// 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.

Diğer Sorunlar

Sorun: Gruplandırma Ölçütü için Raporlarda Arama/Filtre çalışmıyor: Sorun Türü

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.

Sorun: WCF uygulamaları IIS Express ile çalışamaz

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):

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

  2. 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"
    
  3. 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"
    

Sorun: WebMatrix Beta 3, yükseltme gerektiren belirli görevleri gerçekleştiremiyor

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.

Sorun: Windows Server 2003'te, yönetici olmayan bir kullanıcı için IIS Express başlatılmıyor

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.

Sorun: Google Chrome Çalıştır seçeneği olarak kullanılamıyor

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.

Sorun: "Yabancı Anahtar" iletişim kutusu birincil anahtarın girilmesine izin vermiyor

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.

Sorun: "İlişkiler" düğmesi devre dışı

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.

Sorun: Parametreli SQL sorguları özel durumlar oluşturur

SQL Server Compact 4.0'da, parametreli sorgulardaki parametreler için veya DbType gibi SqlDbType bir veri türü belirtmezseniz, sorgu çalıştırıldığında bir özel durum oluşturulur.

Geçici çözüm
veya DbTypegibi SqlDbType parametreler için veri türünü açıkça ayarlayın. Blob veri türleri (image ve ntext) 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()

Daha Fazla Bilgi İçin

WebMatrix Beta 3 hakkında daha fazla bilgi için aşağıdaki web sitelerine bakın: