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 pro web, která se instaluje v řádu minut. Integruje webový server s databázovými a programovacími architekturami a vytváří tak jedno integrované prostředí. WebMatrix Beta můžete použít ke zjednodušení kódu, testování a publikování vlastního webu ASP.NET nebo PHP nebo můžete použít WebMatrix Beta k vytvoření nového webu pomocí oblíbených opensourcových aplikací, jako jsou DotNetNuke, Umbraco, WordPress nebo Odbc. WebMatrix Beta používá stejně výkonné prostředí webového serveru, databázového stroje a architektur, které bude váš web spouštět na internetu. Díky tomu je přechod od vývoje k produkčnímu prostředí plynulý a bezproblémový.

Instalace

Pokud chcete nainstalovat WebMatrix Beta 3, použijte Instalace webové platformy Microsoft 3.0. Po instalaci instalačního programu webové platformy ho můžete použít k instalaci nástroje WebMatrix Beta 3.

Pokud máte během instalace problémy, přečtěte si téma Řešení potíží s Instalace webové platformy Microsoft.

Pokyny pro publikování aplikací

Projděte si podrobné pokyny k publikování aplikací.

Nové funkce, změny aZnámé problémy

Instalace WebMatrix Beta 3

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

Rozhraní .NET Framework verze 4 je vyžadováno pro WebMatrix Beta. V některých případech vám instalační program WebMatrix Beta umožní instalaci na platformě, která není součástí podporované konfigurační sady. Zejména systém Windows Vista bez aktualizace SP1 vám umožní zahájit instalaci webMatrix Beta, ale komponenta rozhraní .NET Framework 4 selže a zablokuje instalaci.

Alternativní řešení
Instalace na podporované platformě, 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: WebMatrix Beta 3 nejde nainstalovat, pokud je nainstalovaná sada Microsoft Visual Studio 2008 bez sady Microsoft Visual Studio 2008 SP1

Alternativní řešení
Nainstalujte microsoft Visual Studio 2008 Service Pack 1 z webu Stažení softwaru.

Problém: Některá sestavení pro SQL Server Compact 4.0 nejsou v nástroji GAC nainstalovaná.

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

  • System.Data.SqlServerCe.dll (zprostředkovatel 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: Nejde odinstalovat SQL Server Compact pomocí příkazového řádku

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

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

ASP.NET – webové stránky

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

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

Nové: Metoda Html.Raw vykreslí nezakódované značky.

Nová Html.Raw metoda umožňuje vykreslit značky HTML jako značky místo vykreslování zakódovaného výstupu. (Ve výchozím nastavení ASP.NET Razor před jejich vykreslením kóduje řetězce.) 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 betaverzi 3 pro webové stránky ASP.NET se syntaxí Razor

Změna: Odebraná metoda HrefAttribute

Metoda HrefAttributeWebPage třídy byla odebrána. Tato pomocná rutina se používala 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. (Novou metodu Html.Raw použijte k vykreslení nezakódovaných řetězců.)

Změna: Syntaxe deklarativních pomocných rutin "@helper" se změnila.

Ve verzi Beta 3 ASP.NET změní způsob analýzy pomocných rutin vytvořených pomocí @helper syntaxe. Syntaxe se @helper teď v podstatě analyzuje jako blok kódu, nikoli jako blok značek, který může obsahovat kód. Proto kód uvnitř pomocníka nemusí být uzavřený v @{ } blocích. Naopak značky uvnitř pomocné rutiny musí být explicitně zahrnuty do elementů HTML nebo do ASP.NET razor <text></text> značek.

Například ve verzi Beta 3 funguje následující @helper syntaxe:

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

Ve verzi Beta 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 @{ } se už nepoužívají znaky kolem počátečního kódu v pomocném nástroji. Je to proto, že obsah pomocných rutin je ve výchozím nastavení považován za blok kódu. Pomocná rutina vykreslí kód, který začíná počáteční <a> značkou. Pokud musí pomocník vykreslit prostý text nebo značky, <meta> které neobsahují pravou značku (například značky), musí být vykreslovaný obsah ve <text></text> značkách.

Změna: Odebraná stránka WebPageContext.HttpContext

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

Změna: Pomocník "Facebook" se přesunul do nového balíčku

Pomocník Facebook byl přesunut do Facebook. Pomocná knihovna, která obsahuje pomocnou rutinu Facebook a další funkce. Tuto knihovnu musíte nainstalovat jako samostatný balíček, jak je popsáno v části Instalace pomocných rutin pomocí 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 se přesunula do sestavení System.Web.WebPages.dll.

Třída TagBuilder byla přesunuta do sestavení System.Web.WebPages.dll. Dříve to bylo v sestavení, které bylo součástí ASP.NET MVC. Tato změna znamená, že pokud chcete použít TagBuilder třídu, 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íku 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: Syntaxe ověření požadavku se změnila. Odebraná třída "Validation"

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á chcete z ověření vyloučit. Ve verzi Beta 3 je k dispozici nová syntaxe pro obcházení ověřování. Metoda použitá Validation v beta verzi 3 byla odebrána.

Poznámka

Pokud ověření požadavku nezakážete a uživatelé se pokusí nahrát značky HTML (například pomocí editoru formátovaného textu na stránce), web nahlásí chybu, jako že klient zjistil potenciálně nebezpečnou hodnotu Request.Form a uživatelský vstup není přijat. Pokud zakážete ověřování požadavků, musíte ručně zkontrolovat vstup uživatele, abyste se ujistili, že neobsahuje potenciálně nebezpečné značky nebo skripty tím, že v ASP.NET Core zabráníte skriptování mezi weby (XSS).

Pokud chcete zakázat automatické ověřování požadavků, zavolejte metodu Request.Unvalidated a 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 Formkolekcích , QueryString, Cookiesa ServerVariables . Následující příklady ukazují, jak používat 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 se syntaxí Razor

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

Pokud chcete inicializovat zprostředkovatele členství pro web ASP.NET Razor, zavolejte metodu WebSecurity.InitializeDatabaseConnection . (V souboru 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 v šabloně úvodního webu nastaven na hodnotu true) a pokud je nerozpoznaný název tabulky předán metodě (druhý parametr), metoda nevyvolá chybu. Místo toho automaticky vytvoří tabulku.

To může být problém, pokud chcete pro členství použít vlastní tabulku uživatelů, ale do metody předáte WebSecurity.InitializeDatabaseConnection nesprávný název 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, aplikace může vypadat, že funguje. Kód aplikace, který závisí na vlastní tabulce uživatele (a na polích 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 profilů uživatelů v databázi členství, nebo se ujistěte, že autoCreateTables je parametr nastaven na hodnotu false.

Problém: Chyba Nepovedlo se vygenerovat instanci SQL Server uživatele

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

Řešení Ujistěte se, že účet 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 tématu Problémy s SQL Server Express instancí uživatelů a ASP.net projekty webových aplikací.

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

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

Alternativní řešení
using Zahrnout 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é jenom v ASP.NET MVC verze 3

Při instalaci ASP.NET webových stránek se neinstalují také nástroje sady Visual Studio, jako jsou intellisense a šablony projektů pro aplikace ASP.NET webové stránky.

Řešení Chcete-li použít IntelliSense a šablony projektů pro aplikace ASP.NET webových stránek v sadě Visual Studio, nainstalujte ASP.NET MVC 3 RC buď 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, Facebook že pomocnou třídu (například třídu) nelze najít. Od verze Beta 2 a pokračování v beta verzi 3 se pomocné rutiny přesunuly do balíčků, které musíte explicitně nainstalovat. Existující weby nejsou upgradovány tak, aby zahrnovaly tyto balíčky. to zahrnuje weby ve složkách \Dokumenty\IISExpress nebo \Dokumenty\Weby . Tato chyba se zobrazí zejména v případě, že v části Osobní weby (WebSite1) použijete výchozí web, který obsahuje odkaz na pomocnou rutinu Twitter .

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

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

Pokud nasadíte web ASP.NET Web Pages na hostitelský web a pokud 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í (GAC) serveru. Sestavení v GAC mají přednost před sestaveními nainstalovanými místně ve složce Bin .

Řešení Obraťte se na svého poskytovatele hostingu a ověřte, že chyby, které se zobrazují, jsou způsobeny 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 se server, na kterém je lokalita spuštěná, nachází za proxy serverem, možná budete muset nakonfigurovat informace o proxy serveru v souboruWeb.config , aby bylo možné číst informace pocházející mimo vaši lokalitu. Pokud například použijete pomocnou rutinu ReCaptcha , bude pomocník komunikovat se službou reCAPTCHA, ale může být blokován proxy serverem. Podobně informační kanály používané v ASP.NET webových stránkách, například informační kanál používaný správcem balíčků, můžou vyžadovat konfiguraci proxy serveru.

Pokud máte problémy při práci s externí službou nebo při práci s informačním kanálem balíčků, vložte do kořenového Web.config souboru 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 verzi Beta 1 ASP.NET Web Pages se syntaxí Razor a pak jste nainstalovali verzi Beta 3, všechna příslušná sestavení se nainstalují 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á značí, že Microsoft.Web.Infrastructure.dll nelze načíst.

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

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

Problém: Odinstalace rozhraní .NET Framework verze 4 zakáže ASP.NET webových stránek se syntaxí 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 neběží správně. ASP.NET webové stránky zaregistruje sestavení v kořenovém Web.config souboru počítače a odebráním rozhraní .NET Framework se tento soubor odebere. Přeinstalace rozhraní .NET Framework nainstaluje novou verzi konfiguračního souboru, ale nepřidá odkaz na sestavení ASP.NET Web Pages.

Řešení Po přeinstalaci rozhraní .NET Framework přeinstalujte ASP.NET webové stránky se syntaxí Razor. Tím přidáte následující prvek do souboruWeb.config v kořenovém adresáři počítače, 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 s ASP.NET sestavení ve složce Bin dochází k chybám

Během nasazování 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í.) Při instalaci verze Beta 3 však dochází k chybám, například k chybám, že 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 aplikaci nasaďte znovu) a restartujte aplikaci.

Problém: Adresy URL bez rozšíření nenajdou soubory .cshtml/.vbhtml ve službě IIS 7 nebo IIS 7.5

Ve službě IIS 7 nebo IIS 7.5 nemůžou požadavky s adresou URL, jako je tato, 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í povolené pro službu IIS 7 nebo IIS 7.5. Nejoblíbnějším scénářem je, že se problém nezobrazuje při místním testování pomocí IIS Express, ale při nasazování webu na hostitelský web.

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 nelze najít.

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

public class MvcApplication :  WebPageHttpApplication { ... }

K tomuto:

public class MvcApplication :  HttpApplication { ... }

To má za následek obrácení změny, která byla zavedena ve verzi Beta 1 ASP.NET webové stránky se syntaxí Razor.

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

Aplikace, které zahrnují databáze SQL Server Compact, můžou běžet na počítači, na kterém není nainstalovaný SQL Server Compact. Microsoft WebMatrix Beta 3 automaticky zkopíruje tyto binární soubory za vás a provede příslušné Web.config transformace souborů.

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

  1. Zkopírujte sestavení databázového stroje do složky Bin (a podsložek) 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.dlldo\Bin
    • Copy C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to\Bin\x86
    • Kopírovat C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to\Bin\amd64
  2. V kořenové složce webu vytvořte nebo otevřete souborWeb.config . (Ve službě WebMatrix Beta 3 je tento typ souboru k dispozici, pokud v dialogovém okně Zvolit typ souboru kliknete na Vše.)

  3. Přidejte následující prvek jako podřízený element konfiguračního> elementu< (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 pro databáze a WebGrid nefungují v jazyce Visual Basic ve střední důvěryhodnosti

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

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

SQL Server Compact

Problém: Vlastnost Encrypt se nerozpoznala

SQL Server Compact 4.0 nerozpozná Encrypt vlastnost SqlCeConnection třídy. Tuto vlastnost byste neměli používat k šifrování souborů databáze. Vlastnost Encrypt byla ve verzi SQL Server Compact 3.5 zastaralá a zachovala se pouze pro zpětnou kompatibilitu.

Alternativní řešení
Encryption Mode K šifrování souborů databáze SQL Server Compact 4.0 použijte vlastnost SqlCeConnection třídy . 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 Server 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: Microsoft Visual C++ knihovny modulu runtime 2008 jsou povinné.

Nativní knihovny DLL SQL Server Compact 4.0 vyžadují Microsoft Visual C++ 2008 Runtime Libraries (x86, IA64 a x64) a Service Pack 1.

Alternativní řešení
Nainstalujte .NET Framework 3.5 SP1. Tím se také nainstaluje aktualizace Visual C++ 2008 Runtime Libraries 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

Instalace rozhraní .NET Framework 2.0, 3.0 nebo 4 nenainstaluje visual C++ 2008 Runtime Libraries SP1.

Problém: Pokud je SQL Server Compact nainstalovaný před instalací rozhraní .NET Framework na počítači, není v souboru machine.config rozhraní .NET Framework zaregistrovaný neměnný název zprostředkovatele.

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 rozhraní .NET Framework verze 3.5 ani 4 není nainstalována před instalací SQL Server Compact, instalační program SQL Server Compact nezaregistruje svůj neměnný název zprostředkovatele v souborumachine.config. Všechny aplikace, které závisí na SQL Server Compact záznamu v souboru machine.config, selžou. Invariantní položka registrace názvu v 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)
Microsoft .NET Framework 4.0 release (úplný balíček)

Pak znovu nainstalujte 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 do sdílené síťové složky

Alternativní řešení
Žádné 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 v dialogovém okně Nastavení publikování nezačíná http:// na nebo https://, nemusí web po nasazení fungovat.

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á nebo http://https://.

Problém: Publikování databáze MySQL selže s chybou Publikování databáze se nezdařilo. K tomu může dojít v případě, že vzdálená databáze nemůže spustit skript."

K této chybě může dojít z několika důvodů. Jedním z důvodů, proč se tato chyba může zobrazit, je, že databázový skript obsahuje znak jednoduchých uvozovek (') a výchozí znaková sada cílové databáze MySQL nemá hodnotu 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 filtrování nefunguje v sestavách pro seskupování podle: Typ problému

Když spustíte sestavu webu a zadáte text do pole Filtrovat podle adresy URL a kliknete na Hledat, nic se nestane. Je to proto, že tento ovládací prvek není funkční, když je stav sestavy Seskupit podle nastavený na Typ problému, což je výchozí nastavení.

Řešení Na pásu karet na kartě Seskupit podle klikněte na adresa URL a seskupte položky podle jejich zdrojové adresy URL. Textové pole a tlačítko pro filtrování položek jsou v tomto stavu funkční.

Problém: Aplikace WCF se nedaří spustit s IIS Express

Při přechodu do aplikace WCF dojde k chybě podobné následující:

Nelze načíst soubor nebo sestavení Microsoft.Web.Administration, version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35 nebo některou z jejich závislostí. Systém nemůže najít zadaný soubor.

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

Ř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 novější):

  1. Zkopírujte Microsoft.Web.dll a Microsoft.Web.Administration.dll sestavení z umístění instalace WebMatrix do adresáře bin aplikace WCF. Ve výchozím nastavení je nástroj 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 odkaz na sestavení v adresáři bin pomocí následujících příkazů. (Tento přístup má tu výhodu, že nevytvoří 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 obě sestavení do GAC. Na příkazovém řádku 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ášeni 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 ve službě WebMatrix Beta 3 nevyžaduje oprávnění správce. U těch, kteří to dělají, můžete operaci provést jako správce nebo postupovat takto:

  • V systému Windows Vista nebo Windows 7 povolte ří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ázána, pokud není nainstalován Instalační program webové platformy 3.0.

Alternativní řešení
Nainstalujte Instalace webové platformy Microsoft 3.0.

Problém: V systému Windows Server 2003 se IIS Express nespustí pro uživatele bez oprávnění správce

Když v systému Windows Server 2003 spustíte stránku nebo spustíte IIS Express, IIS Express se nespustí. U webových stránek se zobrazí chyba, která značí, že aplikace byla spuštěna uživatelem bez oprávnění správce.

Alternativní řešení
Spusťte webMatrix Beta 3 jako správce.

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 chromu se ve Windows neregistrují správně pomocí funkce Výchozí programy. 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 pak klikněte na Nastavit Google Chrome jako výchozí prohlížeč.

Problém: Dialogové okno Cizí klíč neumožňuje zadání primárního klíče.

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

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

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

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

Alternativní řešení
Žádné SQL Server Compact nepodporuje relace mezi tabulkami.

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

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

Alternativní řešení
Explicitně nastavte datový typ pro parametry, jako SqlDbType je 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 službě WebMatrix Beta 3 naleznete na následujících webech: