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
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ý.
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.
Podrobné pokyny pro publikování aplikací
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.
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.
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.
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á
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>")
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.)
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.
Vlastnost
WebPageContext.HttpContext
byla odebrána. Místo toho použijteHttpContext.Current
. (VlastnostWebPageContext.HttpContext
byla jednoduše zabalena.)
Pomocná
Do sestavení byly přesunuty
WebMatrix.WebData
následující typy:
ExtendedMembershipProvider
SimpleMembershipProvider
SimpleRoleProvider
WebSecurity
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žítTagBuilder
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).
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í. MetodaValidation
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 objektuForm
,QueryString
Cookies
, aServerVariables
kolekce. Následující příklady ukazují, jak použít metoduUnvalidated
:Request["userInput"]; // Validated Request.Unvalidated("userInput"); // Validation bypassed Request.Unvalidated().Form["userInput"]; // Validation bypassed Request.QueryString["userPreference"]; // Validated Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed
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ý vInitializeDatabaseConnection
metodě odpovídá tabulce profilu uživatele v databázi členství, nebo se ujistěte, žeautoCreateTables
je parametr nastaven na false.
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 (imports
v jazyce Visual Basic), který odkazuje na entity, které nejsou rozpoznány v době návrhu.
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.
Po upgradu na beta verzi 3 se může zobrazit chyba, že pomocná třída (například
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.
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.
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>
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.
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í
- Pokud máte kontrolu nad serverovým počítačem, nainstalujte na serverovém počítači aktualizaci popsanou v aktualizaci, která umožňuje určitým obslužným rutinám služby IIS 7.0 nebo IIS 7.5 zpracovávat požadavky, jejichž adresy URL nekončí tečkou.
- Pokud nemáte kontrolu nad serverovým počítačem (například nasazujete na hostitelský web), přidejte do souboru Web.config webu následující:
<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.
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:
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
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.)
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 4.0 nerozpozná
Encrypt
vlastnostSqlCeConnection
třídy. Tuto vlastnost byste neměli používat k šifrování databázových souborů. VlastnostEncrypt
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ýchSqlCeConnection
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>;")
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.
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ě.
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://
nebohttps://
, 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 nebohttps://
.
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.
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.
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šší):
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.
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"
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"
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.
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č.
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.
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.
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říkladSqlDbType
neboDbType
. To je důležité v případě datových typů objektů BLOB (image
antext
). 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 o aplikaci WebMatrix Beta 3 naleznete na následujících webech: