Sdílet prostřednictvím


Soubor Readme o nástroji WebMatrix a webových stránkách ASP.NET (Razor) verze Beta 3

Soubor Readme o nástroji WebMatrix a webových stránkách ASP.NET (Razor) verze Beta 3

9. listopadu 2010

Obsah

Přehled

Microsoft WebMatrix Beta je bezplatná sada pro vývoj webů, která se instaluje v řádu minut. Integruje webový server s databázovými a programovacími architekturami za účelem vytvoření jediného integrovaného prostředí. Pomocí webMatrix Beta můžete zjednodušit způsob psaní kódu, testování a publikování vlastního webu ASP.NET nebo PHP, nebo můžete použít WebMatrix Beta k zahájení nového webu pomocí oblíbených opensourcových aplikací, jako jsou DotNetNuke, Umbraco, WordPress nebo Macu. WebMatrix Beta používá stejný výkonný webový server, databázový stroj a rozhraní, které bude spouštět váš web na internetu, takže přechod z vývoje na produkční prostředí je hladký a bezproblémový.

Instalace

Poznámka:

WebMatrix se už nedoporučuje jako integrované vývojové prostředí pro ASP.NET webových stránek. Použijte Visual Studio nebo Visual Studio Code.

Pokud máte během instalace problémy, přečtěte si informace o řešení potíží s instalačním programem Webová platforma Microsoft.

Pokyny pro publikování aplikací

Podrobné pokyny pro publikování aplikací

Problémy s novými funkcemi, změnami a znakyKnown

Instalace WebMatrix Beta 3

Problém: WebMatrix Beta 3 je k dispozici pouze na platformách, které podporují rozhraní Microsoft .NET Framework 4

Pro WebMatrix Beta se vyžaduje rozhraní .NET Framework verze 4. V některých případech vám instalační program WebMatrix Beta umožní pokusit se nainstalovat na platformu, která není součástí podporované konfigurační sady. Konkrétně systém Windows Vista bez aktualizace SP1 vám umožní zahájit instalaci aplikace WebMatrix Beta, ale komponenta .NET Framework 4 selže a zablokuje instalaci.

Alternativní řešení
Nainstalujte se na podporovanou platformu, která zahrnuje:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 nebo novější
  • Windows XP SP3
  • Windows Server 2003 SP2

Problém: Nelze nainstalovat WebMatrix Beta 3, pokud je nainstalována aplikace Microsoft Visual Studio 2008 bez aplikace Microsoft Visual Studio 2008 SP1

Alternativní řešení
Nainstalujte sadu Microsoft Visual Studio 2008 Service Pack 1 z webu Microsoft Download Center.

Problém: Některá sestavení pro SQL Server Compact 4.0 nejsou v GAC nainstalována.

Spravovaná sestavení pro SQL Server Compact 4.0 nejsou umístěna v globální mezipaměti sestavení (GAC) při instalaci SYSTÉMU SQL Server Compact 4.0 na 64bitový počítač a počítač má pouze nainstalované rozhraní .NET Framework 3.5 SP1 Klientský profil. Spravovaná sestavení, která nejsou nainstalovaná v GAC, jsou:

  • System.Data.SqlServerCe.dll (poskytovatel ADO.NET)
  • System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework)

Alternativní řešení
Odinstalujte SQL Server Compact 4.0. Stáhněte a nainstalujte úplnou verzi rozhraní .NET Framework 3.5 SP1 z následujícího umístění:

Microsoft .NET Framework 3.5 Service Pack 1 (úplný balíček)

Potom přeinstalujte SQL Server Compact 4.0.

Problém: Sql Server Compact nejde odinstalovat pomocí příkazového řádku

Odinstalace SQL Serveru Compact pomocí možností příkazového řádku v této verzi nefunguje.

Alternativní řešení
Pomocí programů a funkcí v systému Windows Ovládací panely odinstalujte aplikaci Microsoft SQL Server Compact 4.0.

Webové stránky ASP.NET

Tato část dokumentu popisuje nové funkce, změny a známé problémy s verzí Beta 3 webové stránky ASP.NET se syntaxí Razor.

Nové funkce v beta verzi 3 pro webové stránky ASP.NET syntaxe Razor

New: Metoda Html.Raw vykresluje nekódované revize.

Nová Html.Raw metoda umožňuje vykreslit kód HTML jako revize místo vykreslení zakódovaného výstupu. (Ve výchozím nastavení ASP.NET Razor kóduje řetězce před jejich vykreslením.) Syntaxe je:

Html.Raw(value)

Následující příklad ukazuje, jak používat Html.Raw:

@* Inserts literal markup into the page as specified in the value string. *@
@Html.Raw("<div>Hello <em>world</em>!</div>")

Změny v beta verzi 3 pro webové stránky ASP.NET syntaxí Razor

Změna: Metoda HrefAttribute byla odebrána.

Metoda HrefAttribute WebPage třídy byla odebrána. Tento pomocník se použil ke kódování nebezpečných znaků v adresách URL. Už se nevyžaduje, protože ASP.NET Razor automaticky kóduje řetězce. (Pomocí nové Html.Raw metody vykreslujte nekódované řetězce.)

Změna: Syntaxe pro deklarativní pomocné rutiny "@helper" se změnila

Ve verzi Beta 3 ASP.NET změní způsob analýzy pomocných rutin vytvořených @helper pomocí syntaxe. V podstatě @helper je syntaxe analyzována jako blok kódu místo jako blok kódu, který může obsahovat kód. Proto kód uvnitř pomocné rutiny nemusí být uzavřen do @{ } bloků. Naopak značky uvnitř pomocné rutiny musí být explicitně zahrnuty do elementů HTML nebo do ASP.NET značek Razor <text></text> .

Například následující @helper syntaxe funguje ve verzi 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>
}

V beta verzi 3 musí být tento pomocník změněn tak, aby vypadal jako v následujícím příkladu:

@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>
}

Všimněte si, že @{ } znaky kolem počátečního kódu v pomocné rutině se už nepoužívají. Důvodem je to, že obsah pomocných rutin se ve výchozím nastavení považuje za blok kódu. Pomocná rutina vykreslí značky, které začínají počáteční <a> značkou. Pokud pomocná rutina musí vykreslit prostý text nebo značky, které neobsahují pravou značku (například <meta> značky), musí být obsah vykreslený ve <text></text> značkách.

Změna: WebPageContext.HttpContext byla odebrána.

Vlastnost WebPageContext.HttpContext byla odebrána. Místo toho použijte HttpContext.Current. (Vlastnost WebPageContext.HttpContext byla jednoduše zabalena.)

Změna: Pomocná rutina "Facebook" byla přesunuta do nového balíčku.

Pomocná Facebook rutina byla přesunuta do knihovny Facebook.Helper , která obsahuje pomocné rutiny Facebook a další funkce. Tuto knihovnu musíte nainstalovat jako samostatný balíček, jak je popsáno v části Instalace pomocných rutin s Správce balíčků v kurzu Začínáme s ASP.NET Pages.

Změna: Typy členství, role a zabezpečení se přesunou do nového sestavení.

Do sestavení byly přesunuty WebMatrix.WebData následující typy:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Změna: Třída TagBuilder přesunutá do System.Web.WebPages.dll sestavení

Třída TagBuilder byla přesunuta do System.Web.WebPages.dll sestavení. Dříve to bylo v sestavení, které bylo součástí ASP.NET MVC. Tato změna znamená, že pro použití TagBuilder třídy nemusíte instalovat ASP.NET MVC.

Třída je však stále v System.Web.Mvc oboru názvů. Pokud chcete použít TagBuilder třídu (například ve vlastním pomocném rutině ASP.NET Razor), musíte odkazovat na obor názvů (například přidáním @using System.Web.Mvc do kódu).

Změna: Změna syntaxe ověření požadavku; Třída Ověření byla odebrána.

Pokud chcete ve verzi Beta 3 zakázat ověřování pro jednotlivá pole nebo sadu polí, můžete metodu Validation.Exclude volat a předat název nebo názvy polí, která se mají vyloučit z ověření. V beta verzi 3 je k dispozici nová syntaxe pro obejití ověřování. Metoda Validation použitá v beta verzi 3 byla odebrána.

Poznámka:

Pokud ověření požadavku nezakážete, pokusí-li se uživatelé nahrát kód HTML (například pomocí editoru formátovaného textu na stránce), web oznámí chybu, jako je potenciálně nebezpečná hodnota Request.Form byla zjištěna z klienta a vstup uživatele není přijat. Pokud zakážete ověření požadavku, musíte ručně zkontrolovat vstup uživatele, abyste měli jistotu, že neobsahuje potenciálně nebezpečné značky nebo skript tím , že brání skriptování mezi weby (XSS) v ASP.NET Core.

Pokud chcete zakázat automatické ověření požadavku, zavolejte metodu Request.Unvalidated , předejte jí název pole nebo jiného objektu post, pro který chcete obejít ověření požadavku. Tuto metodu můžete použít k obejití ověřování pro všechny položky v objektu Form, QueryStringCookies, a ServerVariables kolekce. Následující příklady ukazují, jak použít metodu 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

Známé problémy s ASP.NET webovými stránkami s syntaxí Razor

Problém: Neočekávané chování při použití vlastní tabulky uživatelů pro členství

Chcete-li inicializovat zprostředkovatele členství pro web ASP.NET Razor, zavoláte metodu WebSecurity.InitializeDatabaseConnection . (V nástroji WebMatrix obsahuje šablona úvodního webu volání této metody v souboru _AppStart.cshtml .) autoCreateTables Pokud je parametr této metody nastaven na hodnotu true (ve výchozím nastavení je nastaven na hodnotu true v šabloně počátečního webu) a pokud je do metody předán nerozpoznaný název tabulky (druhý parametr), metoda nevyvolá chybu. Místo toho automaticky vytvoří tabulku.

To může být problém, pokud máte v úmyslu použít vlastní uživatelskou tabulku pro členství, ale předejte metodě nesprávný název WebSecurity.InitializeDatabaseConnection tabulky. Vzhledem k tomu, že metoda ve výchozím nastavení nevyvolá chybu, pokud zadaná tabulka neexistuje, a protože místo toho vytvoří novou tabulku, může se zdát, že aplikace funguje. Kód aplikace, který spoléhá na vaši vlastní uživatelskou tabulku (a na pole v ní), ale může nakonec selhat s neočekávanými chybami.

Alternativní řešení
Ujistěte se, že název předaný v InitializeDatabaseConnection metodě odpovídá tabulce profilu uživatele v databázi členství, nebo se ujistěte, že autoCreateTables je parametr nastaven na false.

Problém: Chyba "Nepodařilo se vygenerovat instanci uživatele SQL Serveru"

Pokud webová aplikace WebMatrix používá SQL Server Express a používá službu IIS 7.5 ve Windows 7 nebo Windows Serveru 2008 R2, může se zobrazit chyba, která značí, že SQL Server nemůže načíst místní cestu aplikace uživatele za běhu.

Alternativní řešení: Ujistěte se, že účet Systému Windows, pod kterým aplikace běží (obvykle NETWORK SERVICE), má oprávnění ke čtení a zápisu pro kořenové složky aplikace a pro podsložky, jako jsou App_Data. Podrobnější informace najdete v části Problémy s vytvářením instancí uživatelů SQL Server Express a projekty webových aplikací ASP.net.

Problém: V sadě Visual Studio se obory názvů pro vlastní sestavení (KNIHOVNY DLL) neimportují automaticky.

Pokud v projektu v sadě Visual Studio používáte vlastní sestavení, nebudou se obory názvů deklarované v těchto sestaveních automaticky importovat v době návrhu. V důsledku toho se nemusí v době návrhu rozpoznat odkazy na vlastní typy a v sadě Visual Studio se označí jako nerozpoznané (pomocí vlnovek). K tomuto problému dochází pouze v době návrhu v sadě Visual Studio; aplikace samotná běží správně.

Alternativní řešení
using Zahrňte příkaz (importsv jazyce Visual Basic), který odkazuje na entity, které nejsou rozpoznány v době návrhu.

Problém: Visual Studio IntelliSense a šablony projektů dostupné pouze v ASP.NET MVC verze 3

Instalace ASP.NET webových stránek také nenainstaluje nástroje pro Visual Studio, jako je IntelliSense a šablony projektů pro aplikace ASP.NET webových stránek.

Alternativní řešení: Použití technologie IntelliSense a šablon projektů pro aplikace webových stránek ASP.NET v sadě Visual Studio, nainstalujte ASP.NET MVC 3 RC prostřednictvím instalačního programu webové platformy nebo samostatného instalačního programu.

Problém: Chyba "<Pomocná> třída nebyla nalezena"

Po upgradu na beta verzi 3 se může zobrazit chyba, že pomocná třída (například Facebook třída) nebyla nalezena. Počínaje verzí Beta 2 a pokračováním v beta verzi 3 byly pomocné rutiny přesunuty do balíčků, které musíte explicitně nainstalovat. Stávající lokality nejsou upgradovány tak, aby zahrnovaly tyto balíčky; to zahrnuje weby ve složkách \Dokumenty\IISExpress nebo \Dokumenty\Osobní weby . Konkrétně se tato chyba zobrazí, pokud používáte výchozí web v osobních webech (WebSite1), který obsahuje odkaz na pomocníka Twitter .

Alternativní řešení
Zakomentujte volání všech pomocných rutin v lokalitě, spusťte _Admin stránku a nainstalujte balíček nebo balíčky, které obsahují pomocné rutiny, které chcete použít. Po instalaci balíčku můžete zrušit komentář řádků, které odkazují na pomocné rutiny.

Problém: Nasazení beta verze 3 ASP.NET sestavení Razor do složky Bin nemusí na hostitelských webech fungovat

Pokud nasadíte web ASP.NET webových stránek na hostitelský web a nasadíte sestavení ASP.NET Razor Beta 3 do složky Bin webu, může docházet k chybám, včetně následujících:

Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

K tomu může dojít, pokud poskytovatel hostingu nainstaloval sestavení ASP.NET Web Pages Beta 1 do globální mezipaměti aplikací serveru (GAC). Sestavení v GAC mají přednost před sestaveními nainstalovanými místně ve složce Bin .

Alternativní řešení : Obraťte se na poskytovatele hostingu a ověřte, že chyby, které se vám zobrazují, jsou způsobené konfliktem mezi verzemi sestavení a vašimi verzemi poskytovatele. Pokud ano, požádejte poskytovatele hostingu, aby aktualizoval sestavení v GAC serveru.

Problém: Čtení informačních kanálů nebo jiných externích dat prostřednictvím proxy serveru

Pokud je server, na kterém je web spuštěný, za proxy serverem, možná budete muset nakonfigurovat informace o proxy serveru v souboru Web.config , aby bylo možné číst informace pocházející z mimo váš web. Pokud například použijete pomocnou rutinu ReCaptcha , pomocník komunikuje se službou reCAPTCHA, ale může být zablokován proxy serverem. Podobně můžou informační kanály používané ve webových stránkách ASP.NET, jako je například informační kanál používaný správcem balíčků, vyžadovat konfiguraci proxy serveru.

Pokud máte problémy s prací s externí službou nebo prací s informačním kanálem balíčku, vložte do kořenového souboru Web.config vaší aplikace následující prvky:

<system.net>
  <defaultProxy>
    <proxy autoDetect="False" 
       proxyaddress="[proxy URL]"/>
  </defaultProxy>
</system.net>

Další informace o konfiguraci proxy serveru naleznete v tématu <element proxy> (nastavení sítě) na webu MSDN.

Problém: Chyba Microsoft.Web.Infrastructure.dll nejde načíst

Pokud jste dříve nainstalovali beta verzi ASP.NET webových stránek se syntaxí Razor a pak nainstalujte beta verzi 3, nainstalují se všechna příslušná sestavení v GAC s výjimkou Microsoft.Web.Infrastructure.dll. V důsledku toho se při spuštění ASP.NET Razor Pages zobrazí chyba, která indikuje, že Microsoft.Web.Infrastructure.dll nebylo možné načíst.

K tomuto problému nedochází, pokud jste načetli verzi Beta 3 do čistého počítače.

Alternativní řešení
V Ovládací panely odinstalujte webové stránky ASP.NET. Potom znovu nainstalujte beta verzi 3.

Problém: Odinstalace rozhraní .NET Framework verze 4 zakáže ASP.NET webových stránek pomocí syntaxe Razor

Pokud odinstalujete rozhraní .NET Framework verze 4 a pak ho znovu nainstalujete, ASP.NET webové stránky se syntaxí Razor je zakázána. Stránky s příponou .cshtml se nespustí správně. ASP.NET webové stránky zaregistrují sestavení v kořenovém souboru Web.config počítače a odebere rozhraní .NET Framework tento soubor. Přeinstalace rozhraní .NET Framework nainstaluje novou verzi konfiguračního souboru, ale nepřidá odkaz na sestavení ASP.NET webových stránek.

Alternativní řešení po přeinstalaci rozhraní .NET Framework přeinstalujte ASP.NET webových stránek pomocí syntaxe Razor. Tím se do souboru Web.config v kořenovém adresáři počítače přidá následující prvek, který je obvykle v následujícím umístění:

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>

Problém: U aplikací dříve nasazených se sestaveními ASP.NET ve složce Bin dochází k chybám

Během nasazování se kopie sestavení webových stránek ASP.NET (například Microsoft.WebPages.dll) do složky Bin webu na serveru. (K tomu mohlo dojít automaticky během nasazení, nebo proto, že vývojář explicitně zkopíroval sestavení.) Pokud je však nainstalována verze Beta 3, dojde k chybám, jako jsou chyby, které některé typy nelze najít. K tomu dochází, protože řada typů webových stránek ASP.NET byla přesunuta do různých oborů názvů pro verzi Beta 3.

Alternativní řešení
Vymažte složku Bin nasazené aplikace, zkopírujte nová sestavení do složky (nebo znovu nasaďte aplikaci) a restartujte aplikaci.

Problém: Adresy URL bez přípony nenaleznou soubory .cshtml/.vbhtml ve službě IIS 7 nebo IIS 7.5

V IIS 7 nebo IIS 7.5 požadavky s adresou URL, jako je následující, nemůžou najít stránky, které mají příponu .cshtml nebo .vbhtml :

http://www.example.com/ExampleSite/ExampleFile

K tomuto problému dochází, protože přepsání adresy URL není ve výchozím nastavení pro iis 7 nebo IIS 7.5 povolené. Nejobvyklejším scénářem je, že při místním testování pomocí služby IIS Express se problém nezobrazuje, ale při nasazování webu na hostitelský web na něj narazíte.

Alternativní řešení

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Problém: Použití projektu webové aplikace nebo ASP.NET MVC a ASP.NET webových stránek ve stejné aplikaci

Pokud jste používali webové stránky ASP.NET v projektu webové aplikace nebo ASP.NET aplikaci MVC, může se zobrazit chyba, že webPageHttpApplication nebyl nalezen.

Alternativní řešení
Pokud se zobrazí tato chyba, změňte základní třídu, ze které je aplikace odvozena. V souboru Global.asax změňte následující řádek:

public class MvcApplication :  WebPageHttpApplication { ... }

Na toto:

public class MvcApplication :  HttpApplication { ... }

To se projeví v obrácení změny, která byla zavedena pro beta verzi ASP.NET webových stránek se syntaxí Razor.

Problém: Nasazení aplikace do počítače, na kterém není nainstalovaný SQL Server Compact

Aplikace, které obsahují databáze SQL Server Compact, mohou běžet na počítači, na kterém není nainstalován SYSTÉM SQL Server Compact. Microsoft WebMatrix Beta 3 automaticky zkopíruje tyto binární soubory za vás a provede příslušné transformace souboru Web.config .

Alternativní řešení : Pokud potřebujete tyto soubory zkopírovat a provést změny souboru Web.config ručně, postupujte takto:

  1. Zkopírujte sestavení databázového stroje do složky Bin (a podsložky) aplikace v cílovém počítači:

    • Kopírování C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll do složky \Bin
    • Kopírování C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* do \Bin\x86
    • Kopírování C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* do \Bin\amd64
  2. V kořenové složce webu vytvořte nebo otevřete soubor Web.config . (V aplikaci WebMatrix Beta 3 je tento typ souboru dostupný, pokud kliknete na Vše v dialogovém okně Zvolit typ souboru.)

  3. Přidejte následující prvek jako podřízený element konfigurace> (ne uvnitř elementu< 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>

Problém: Pomocné rutiny Databáze a WebGrid nefungují ve střední důvěryhodnosti v jazyce Visual Basic

Pokud používáte Visual Basic (vytváříte soubory .vbhtml), nebudou pomocné rutiny WebGrid fungovat, Database pokud je aplikace nastavená na použití střední důvěryhodnosti.

Alternativní řešení
Dočasně nastavte aplikaci tak, aby používala úplný vztah důvěryhodnosti.

SQL Server Compact

Problém: Vlastnost Šifrovat se nerozpoznala

SQL Server Compact 4.0 nerozpozná Encrypt vlastnost SqlCeConnection třídy. Tuto vlastnost byste neměli používat k šifrování databázových souborů. Vlastnost Encrypt byla vyřazena ve verzi SQL Server Compact 3.5 a byla zachována pouze kvůli zpětné kompatibilitě.

Alternativní řešení
Encryption Mode Vlastnost třídy slouží k šifrování databázových SqlCeConnection souborů SQL Server Compact 4.0. Následující příklad ukazuje, jak vytvořit šifrovanou databázi SQL Server Compact 4.0 pomocí Encryption Mode vlastnosti:

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

Pokud chcete změnit režim šifrování existující databáze SQL Server Compact 4.0, postupujte takto:

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

Pokud chcete zašifrovat nešifrovanou databázi SQL Serveru Compact 4.0, postupujte takto:

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

Problém: Vyžadují se knihovny modulu runtime Microsoft Visual C++ 2008

Nativní knihovny DLL sql Serveru Compact 4.0 vyžadují knihovny modulu runtime Microsoft Visual C++ 2008 (x86, IA64 a x64), Service Pack 1.

Alternativní řešení
Nainstalujte rozhraní .NET Framework 3.5 SP1. Tím se nainstalují také knihovny modulu runtime Visual C++ 2008 SP1. Knihovny si můžete stáhnout z následujícího umístění:

Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update

Poznámka:

Všimněte si, že instalace rozhraní .NET Framework 2.0, 3.0 nebo 4 neinstaluje knihovny modulu runtime Visual C++ 2008 SP1.

Problém: Pokud je před instalací rozhraní .NET Framework v počítači nainstalován SYSTÉM SQL Server Compact, jeho zprostředkovatel není zaregistrovaný v souboru machine.config rozhraní .NET Framework.

SQL Server Compact lze nainstalovat na počítač, který nemá nainstalované rozhraní .NET Framework, protože SQL Server Compact vyžaduje rozhraní .NET Framework. Pokud není před instalací systému SQL Server Compact nainstalována rozhraní .NET Framework verze 3.5 ani 4, instalační program sql Serveru Compact nezaregistruje v souboru machine.config jeho zprostředkovatele invariantní název. Všechny aplikace, které spoléhají na položku SQL Server Compact v souboru machine.config , selžou. Položka registrace invariantního názvu v souboru machine.config vypadá jako v následujícím příkladu:

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

Alternativní řešení
Odinstalujte SQL Server Compact 4.0 CTP1. Stáhněte a nainstalujte úplné verze rozhraní .NET Framework z následujícího umístění:

Microsoft .NET Framework 3.5 Service Pack 1 (úplný balíček)
Verze Microsoft .NET Framework 4.0 (úplný balíček)

Potom přeinstalujte SQL Server Compact 4.0 SP1.

Instalace aplikací

Problém: Instalace aplikace může trvat dlouhou dobu, pokud je složka Dokumenty uživatele přesměrována na sdílenou síťovou složku

Alternativní řešení
Nezaokrouhlovat. Instalace aplikace může chvíli trvat, ale nainstaluje se správně.

Publikování aplikací

Problém: Web nemusí po publikování fungovat, pokud pole Cílová adresa URL nemá předponu http:// nebo https://

Pokud cílová adresa URL nezačíná http:// nebo https://, web nemusí po nasazení fungovat v dialogovém okně Nastavení publikování.

Alternativní řešení
Před publikováním webu se ujistěte, že cílová adresa URL v dialogovém okně Nastavení publikování začíná http:// na nebo https://.

Problém: Publikování databáze MySQL selže s chybou Nepodařilo se publikovat databázi. K tomu může dojít, pokud vzdálená databáze nemůže spustit skript."

K chybě může dojít z několika důvodů. Jedním z důvodů, proč se tato chyba zobrazí, je, že databázový skript obsahuje jeden uvozovek (') a výchozí znaková sada cílové databáze MySQL není UTF-8.

Alternativní řešení
Nastavte výchozí znakovou sadu pro vzdálenou databázi MySQL na UTF-8.

Další problémy

Problém: Hledání nebo filtr nefunguje v sestavách pro seskupení podle: Typ problému

Když spustíte sestavu pro web, zadáte-li text do pole Filtrovat podle adresy URL a kliknete na Hledat, nic se nestane. Důvodem je to, že tento ovládací prvek není funkční, zatímco stav Seskupit podle sestavy je nastaven na Typ problému, což je výchozí hodnota.

Alternativní řešení na kartě Seskupit podle na pásu karet kliknutím na adresu URL seskupíte položky podle zdrojové adresy URL. Textové pole a tlačítko pro filtrování položek jsou funkční v tomto stavu.

Problém: Aplikace WCF se nedaří spustit se službou IIS Express

Při procházení aplikace WCF dojde k chybě, například v následujícím příkladu:

Nelze načíst soubor nebo sestavení Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35 nebo jednu z jejích závislostí. Systém nemůže najít zadaný soubor.

K tomu dochází, protože verze BETA služby IIS Express ve výchozím nastavení nepodporuje WCF.

Alternativní řešení Použijte některé z následujících alternativních řešení (alternativní řešení č. 2 vyžaduje systém Microsoft Windows Vista nebo vyšší):

  1. Zkopírujte sestavení Microsoft.Web.dll a Microsoft.Web.Administration.dll z umístění instalace WebMatrix do adresáře bin aplikace WCF. Ve výchozím nastavení je webMatrix nainstalován v podsložce Microsoft WebMatrix ve složce Program Files systému.

  2. V systému Microsoft Windows Vista nebo vyšší vytvořte pomocí následujících příkazů symlink k sestavením v adresáři bin . (Tento přístup má výhodu, že nevytváří kopii sestavení.)

    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. Nainstalujte dvě sestavení do GAC. Z výzvy se zvýšenými oprávněními spusťte následující příkazy:

    gacutil /i  "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"
    gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
    

Problém: WebMatrix Beta 3 nemůže provádět určité úlohy, které vyžadují zvýšení oprávnění

WebMatrix Beta 3 nemůže provádět určité úlohy, které vyžadují zvýšení oprávnění, například instalaci dalších komponent v následujících situacích:

  • V systému Windows Vista nebo Windows 7 jste přihlášení pomocí účtu, který nemá oprávnění správce a řízení uživatelských účtů (UAC) je zakázáno.
  • Používáte systém Microsoft Windows XP nebo Microsoft Windows Server 2003.

Alternativní řešení
Většina úloh v aplikaci WebMatrix Beta 3 nevyžaduje oprávnění správce. U těch, které to dělají, můžete operaci provést jako správce, nebo postupujte takto:

  • V systému Windows Vista nebo Windows 7 povolte nástroj Řízení uživatelských účtů.
  • V systému Windows XP přidejte uživatele do skupiny zabezpečení Administrators.

Možnost Web z webové galerie je zakázaná, pokud není nainstalován instalační program webové platformy 3.0.

Alternativní řešení
Nainstalujte instalační program Webová platforma Microsoft 3.0.

Problém: V systému Windows Server 2003 se služba IIS Express nespustí pro uživatele, který není správcem

Při spuštění stránky nebo spuštění služby IIS Express ve Windows Serveru 2003 se služba IIS Express nespustí. U webových stránek se zobrazí chyba, která značí, že aplikace byla spuštěna uživatelem, který není správcem.

Alternativní řešení
Spusťte WebMatrix Beta 3 jako administrativní uživatel.

Problém: Google Chrome není k dispozici jako možnost Spustit

Google Chrome se nezobrazuje v seznamu prohlížečů v části Spustit na kartě Domů .

Alternativní řešení
Některé verze Google Chrome se neregistrují správně pomocí funkce Výchozí programy ve Windows. Jako alternativní řešení spusťte Google Chrome, klikněte na nabídku Přizpůsobit a ovládat Google Chrome , klikněte na Možnosti a potom klikněte na Nastavit Google Chrome jako výchozí prohlížeč.

Problém: Dialogové okno Cizí klíč nepovoluje zadávání primárního klíče

Dialogové okno Cizí klíč neumožňuje zadat název primárního klíče z tabulky primárního klíče.

Alternativní řešení
To je úmyslné. Nemusíte zadávat název primárního klíče z tabulky primárního klíče.

Problém: Tlačítko Relace je zakázané

Tlačítko Relace na kartě Tabulka v pracovním prostoru Databáze je zakázáno pro databáze SQL Server Compact.

Alternativní řešení
Nezaokrouhlovat. SQL Server Compact nepodporuje relace mezi tabulkami.

Problém: Parametrizované dotazy SQL volají výjimky

Pokud v SQL Serveru Compact 4.0 nezadáte datový typ, například SqlDbType DbType parametry v parametrizovaných dotazech, při spuštění dotazu se vyvolá výjimka.

Alternativní řešení
Explicitně nastavte datový typ pro parametry, například SqlDbType nebo DbType. To je důležité v případě datových typů objektů BLOB (image a ntext). Použijte kód podobný tomuto:

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

Další informace

Další informace o aplikaci WebMatrix Beta 3 naleznete na následujících webech: