Dela via


Webbmatris och ASP.NET webbsidor (Razor) Beta 3 Release Readme

Webbmatris och ASP.NET webbsidor (Razor) Beta 3 Release Readme

den 9 november 2010

Innehåll

Översikt

Microsoft WebMatrix Beta är en kostnadsfri webbutvecklingsstack som installeras på några minuter. Den integrerar en webbserver med databas- och programmeringsramverk för att skapa en enda integrerad upplevelse. Du kan använda WebMatrix Beta för att effektivisera ditt sätt att koda, testa och publicera din egen ASP.NET- eller PHP-webbplats, eller så kan du använda WebMatrix Beta för att starta en ny webbplats med populära appar med öppen källkod som DotNetNuke, Umbraco, WordPress eller Joomla. WebMatrix Beta använder samma kraftfulla webbserver, databasmotor och ramverksmiljö som kör din webbplats på Internet, vilket gör övergången från utveckling till produktion smidig och smidig.

Installation

Anmärkning

WebMatrix rekommenderas inte längre som en integrerad utvecklingsmiljö för ASP.NET webbsidor. Använd Visual Studio eller Visual Studio Code.

Om du har problem under installationen kan du läsa Felsöka problem med Installationsprogrammet för Microsoft Web Platform.

Instruktioner för publicering av program

Se stegvisa instruktioner för publicering av program

Nya funktioner, ändringar och kända problem

WebMatrix Beta 3 Installation

Problem: WebMatrix Beta 3 är endast tillgängligt på plattformar som stöder Microsoft .NET Framework 4

.NET Framework version 4 krävs för WebMatrix Beta. I vissa fall gör installationsprogrammet för WebMatrix Beta att du kan försöka installera på en plattform som inte ingår i konfigurationsuppsättningen som stöds. I synnerhet gör Windows Vista utan SP1-uppdateringen att du kan börja installera WebMatrix Beta, men .NET Framework 4-komponenten misslyckas och blockerar installationen.

Lösning
Installera på en plattform som stöds, vilket omfattar:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 eller senare
  • Windows XP SP3
  • Windows Server 2003 SP2

Problem: Det går inte att installera WebMatrix Beta 3 om Microsoft Visual Studio 2008 har installerats utan Microsoft Visual Studio 2008 SP1

Lösning
Installera Microsoft Visual Studio 2008 Service Pack 1 från Microsoft Download Center.

Problem: Vissa sammansättningar för SQL Server Compact 4.0 är inte installerade i GAC

De hanterade sammansättningarna för SQL Server Compact 4.0 placeras inte i den globala sammansättningscachen (GAC) när du installerar SQL Server Compact 4.0 på en 64-bitars dator och datorn bara har .NET Framework 3.5 SP1-klientprofilen installerad. De hanterade sammansättningar som inte är installerade i GAC är:

  • System.Data.SqlServerCe.dll (ADO.NET leverantör)
  • System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework)

Lösning
Avinstallera SQL Server Compact 4.0. Ladda ned och installera den fullständiga versionen av .NET Framework 3.5 SP1 från följande plats:

Microsoft .NET Framework 3.5 Service Pack 1 (fullständigt paket)

Installera sedan om SQL Server Compact 4.0.

Problem: Det går inte att avinstallera SQL Server Compact med hjälp av kommandoraden

Avinstallation av SQL Server Compact med kommandoradsalternativ fungerar inte i den här versionen.

Lösning
Använd Program och funktioner i Windows-kontrollpanelen för att avinstallera Microsoft SQL Server Compact 4.0.

ASP.NET webbsidor

Det här avsnittet i dokumentet beskriver nya funktioner, ändringar och kända problem med Beta 3-versionen av ASP.NET webbsidor med Razor-syntax.

Nya funktioner i Beta 3 för ASP.NET webbsidor med Razor-syntax

Ny: Metoden "Html.Raw" återger okodad markering

Med den nya Html.Raw metoden kan du rendera HTML-kod som markering i stället för att återge kodade utdata. (Som standard kodar ASP.NET Razor strängar innan de återges.) Syntaxen är:

Html.Raw(value)

I följande exempel visas hur du använder Html.Raw:

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

Ändringar i Beta 3 för ASP.NET webbsidor med Razor-syntax

Ändring: Metoden "HrefAttribute" har tagits bort

- HrefAttribute metoden för WebPage klassen har tagits bort. Den här hjälpen användes för att koda osäkra tecken i URL:er. Det krävs inte längre eftersom ASP.NET Razor automatiskt kodar strängar. (Använd den nya Html.Raw metoden för att återge okodade strängar.)

Ändring: Syntaxen för deklarativa "@helper"-hjälparna har ändrats

I betaversionen 3 ändrar ASP.NET hur den parsar hjälpare som skapas med hjälp av syntaxen @helper . I grund och botten parsas syntaxen @helper nu som ett kodblock i stället för som ett markeringsblock som kan innehålla kod. Därför behöver kod i hjälpen inte omges av @{ } block. Omvänt måste markeringar i hjälpen uttryckligen inkluderas i HTML-element eller i ASP.NET Razor-taggar <text></text> .

Följande syntax fungerar till exempel @helper i Beta 3-versionen:

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

I betaversionen 3 måste den här hjälpen ändras så att den ser ut som i följande exempel:

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

Observera att @{ } tecknen runt den första koden i hjälpen inte längre används. Det beror på att innehållet i hjälparna behandlas som ett kodblock som standard. Hjälpen renderar markering, som börjar med den inledande <a> taggen. Om hjälpen måste återge oformaterad text eller taggar som inte innehåller en avslutande tagg (till exempel <meta> taggar) måste innehållet som återges finnas i <text></text> taggar.

Ändra: "WebPageContext.HttpContext" har tagits bort

Egenskapen WebPageContext.HttpContext har tagits bort. Använd HttpContext.Current i stället. (Egenskapen WebPageContext.HttpContext har helt enkelt omslutit detta.)

Ändra: "Facebook"-hjälpen har flyttats till ett nytt paket

Hjälpen Facebook har flyttats till facebook.helper-biblioteket , som innehåller hjälpen Facebook och ytterligare funktioner. Du måste installera det här biblioteket som ett separat paket enligt beskrivningen i "Installera hjälpare med Pakethanteraren" i självstudien Komma igång med ASP.NET Pages.

Ändra: Typerna Medlemskap, Roll och Säkerhet flyttas till ny sammansättning

Följande typer flyttades till WebMatrix.WebData sammansättningen:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Ändra: Klassen "TagBuilder" har flyttats till System.Web.WebPages.dll sammansättning

Klassen TagBuilder har flyttats till System.Web.WebPages.dll-assemblyn. Tidigare var detta i en sammansättning som var en del av ASP.NET MVC. Den här ändringen innebär att du inte behöver installera ASP.NET MVC för att kunna använda TagBuilder klassen.

Klassen finns dock fortfarande i System.Web.Mvc namnområdet. För att kunna använda TagBuilder klassen (till exempel i en anpassad ASP.NET Razor-hjälpen) måste du referera till namnområdet (till exempel genom att lägga @using System.Web.Mvc till i koden).

Ändring: Valideringssyntaxen för begäran har ändrats. Klassen "Validering" har tagits bort

Om du vill inaktivera validering för ett enskilt fält eller en uppsättning fält i betaversionen kan du anropa Validation.Exclude metoden och skicka in namnet eller namnen på fälten som ska undantas från valideringen. En ny syntax är tillgänglig i Beta 3-versionen för att kringgå valideringen. Metoden Validation som används i Beta 3 har tagits bort.

Anmärkning

Om du inte inaktiverar validering av begäranden, om användarna försöker ladda upp HTML-kod (till exempel genom att använda en RTF-redigerare på en sida), rapporterar webbplatsen ett fel som ett potentiellt farligt Request.Form-värde identifierades från klienten och användarens indata accepteras inte. Om du inaktiverar validering av begäranden måste du kontrollera användarindata manuellt för att se till att den inte innehåller potentiellt farlig markering eller skript enligt Preventing Cross-Site Scripting (XSS) in ASP.NET Core.

Om du vill inaktivera automatisk validering av begäranden anropar Request.Unvalidated du metoden och skickar namnet på fältet eller det andra postobjektet som du vill kringgå valideringen av begäran för. Du kan använda den här metoden för att förbigå valideringen för alla objekt i samlingarna Form, QueryString, Cookies och ServerVariables. Följande exempel visar hur du använder Unvalidated metoden:

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

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

Kända problem för ASP.NET webbsidor med Razor-syntax

Problem: Oväntat beteende när du använder en anpassad användartabell för medlemskap

Om du vill initiera medlemskapsprovidern för en ASP.NET Razor-webbplats anropar WebSecurity.InitializeDatabaseConnection du metoden. (I WebMatrix innehåller mallen Startwebbplats ett anrop till den här metoden i filen _AppStart.cshtml .) Om parametern för den autoCreateTables här metoden är inställd på true (som standard är den inställd på true i mallen Startwebbplats) och om ett okänt tabellnamn skickas till metoden (den andra parametern) genererar metoden inget fel. I stället skapas tabellen automatiskt.

Detta kan vara ett problem om du tänker använda en anpassad användartabell för medlemskap men skickar fel tabellnamn till WebSecurity.InitializeDatabaseConnection metoden. Eftersom metoden inte som standard genererar ett fel om den tabell som du anger inte finns, och eftersom den i stället skapar en ny tabell, kan programmet verka fungera. Programkod som förlitar sig på din anpassade användartabell (och på fält i den) kan dock misslyckas med oväntade fel.

Lösning
Kontrollera att namnet som skickades i InitializeDatabaseConnection metoden matchar användarprofiltabellen i medlemskapsdatabasen eller se till att parametern autoCreateTables är inställd på false.

Problem: Felet "Det gick inte att generera en användarinstans av SQL Server"

Om ett WebMatrix-webbprogram använder SQL Server Express och kör IIS 7.5 på Windows 7 eller Windows Server 2008 R2 kan ett fel visas som anger att SQL Server inte kan hämta användarens lokala programsökväg vid körning.

Lösning Kontrollera att Det Windows-konto som programmet körs under (vanligtvis NETWORK SERVICE) har läs-/skrivbehörighet för rotmappar i programmet och för undermappar som App_Data. Mer detaljerad information finns på Problem med användarinstansering i SQL Server Express och ASP.net Web Application Projects.

Problem: I Visual Studio importeras inte namnområden för anpassade sammansättningar (DLL:er) automatiskt

Om du använder anpassade sammansättningar i ett projekt i Visual Studio importeras inte de namnområden som deklareras i dessa sammansättningar automatiskt vid designtillfället. Därför kanske referenser till anpassade typer inte identifieras vid designtillfället och markeras som inte identifierade i Visual Studio (med hjälp av en "squiggle"). Det här problemet uppstår endast vid designtillfället i Visual Studio. själva programmet körs korrekt.

Lösning
Inkludera en using instruktion (imports i Visual Basic) som refererar till de entiteter som inte identifieras vid designtillfället.

Problem: Visual Studio IntelliSense och projektmallar som endast är tillgängliga i ASP.NET MVC version 3

Installation av ASP.NET webbsidor installerar inte heller verktyg för Visual Studio, till exempel IntelliSense och projektmallar för ASP.NET web pages-program.

Lösning Om du vill använda IntelliSense och projektmallar för ASP.NET webbsidor i Visual Studio installerar du ASP.NET MVC 3 RC antingen via installationsprogrammet för webbplattformen eller det fristående installationsprogrammet.

Problem: Felet "<det går inte att hitta hjälpklassen> "

När du har uppgraderat till Beta 3 kan ett fel visas om att det inte går att hitta en hjälpklass (till exempel Facebook klassen). Från och med Beta 2 och fortsätter i Beta 3 har hjälparna flyttats till paket som du uttryckligen måste installera. Befintliga platser uppgraderas inte för att inkludera dessa paket. Detta inkluderar webbplatser i mapparna \My Documents\IISExpress eller \My Documents\My Web Sites . I synnerhet visas det här felet om du använder standardwebbplatsen i Mina webbplatser (WebSite1), som innehåller en referens till hjälpen Twitter .

Lösning
Kommentera ut anrop till alla hjälpare på webbplatsen, kör _Admin-sidan och installera paketet eller paketen som innehåller de hjälpare som du vill använda. När du har installerat paketet kan du avkommentera raderna som refererar till hjälparna.

Problem: Distribution av Beta 3-ASP.NET Razor-sammansättningar till mappen Bin kanske inte fungerar på värdwebbplatser

Om du distribuerar en ASP.NET webbplats för webbsidor till en värdwebbplats, och om du distribuerar ASP.NET Razor Beta 3-sammansättningar till webbplatsens bin-mapp , kan det uppstå fel, inklusive följande:

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

Detta kan inträffa om värdleverantören har installerat ASP.NET Web Pages Beta 1-sammansättningar i serverns globala programcache (GAC). Sammansättningar i GAC får företräde framför sammansättningar som installeras lokalt i mappen Bin .

Lösning Kontakta värdleverantören för att bekräfta att de fel du ser beror på en konflikt mellan leverantörens versioner av sammansättningarna och dina. I så fall begär du att värdleverantören uppdaterar sammansättningarna i serverns GAC.

Problem: Läsa informationsflöden eller andra externa data via en proxyserver

Om servern som kör platsen finns bakom en proxyserver kan du behöva konfigurera proxyinformation i Web.config-filen för att kunna läsa information som kommer utanför din webbplats. Om du till exempel använder ReCaptcha hjälpen kommunicerar hjälpen med reCAPTCHA-tjänsten, men kan blockeras av proxyservern. På samma sätt kan flöden som används i ASP.NET webbsidor, till exempel det flöde som används av pakethanteraren, kräva proxykonfiguration.

Om du har problem med att arbeta med en extern tjänst eller arbeta med paketflödet lägger du följande element i programmets rotfilWeb.config :

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

Mer information om hur du konfigurerar en proxyserver <finns i proxyelement> (nätverksinställningar) på MSDN-webbplatsen.

Problem: Felet "Microsoft.Web.Infrastructure.dll kan inte laddas"

Om du tidigare har installerat Beta 1-versionen av ASP.NET webbsidor med Razor-syntax och sedan installerar Beta 3-versionen installeras alla lämpliga sammansättningar i GAC förutom Microsoft.Web.Infrastructure.dll. När du kör ASP.NET Razor-sidor visas därför ett fel som anger att Microsoft.Web.Infrastructure.dll inte kunde läsas in.

Det här problemet uppstår inte om du har läst in Beta 3-versionen på en ren dator.

Lösning
Avinstallera ASP.NET webbsidor på Kontrollpanelen. Installera sedan om Beta 3-versionen.

Problem: Om du avinstallerar .NET Framework version 4 inaktiveras ASP.NET webbsidor med Razor-syntax

Om du avinstallerar .NET Framework version 4 och sedan installerar om den inaktiveras ASP.NET webbsidor med Razor-syntax. Sidor med .cshtml-tillägget körs inte korrekt. ASP.NET Web Pages registrerar en sammansättning i datorns rotfilWeb.config och om du tar bort .NET Framework tas filen bort. Om du installerar om .NET Framework installeras en ny version av konfigurationsfilen, men referensen för sammansättningen ASP.NET webbsidor läggs inte till.

Lösning När du har installerat om .NET Framework installerar du om ASP.NET webbsidor med Razor-syntax. Detta lägger till följande element i Web.config-filen i datorroten, som vanligtvis finns på följande plats:

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>

Problem: Program som tidigare distribuerats med ASP.NET sammansättningar i mappen Bin får fel

Under distributionen kopieras kopior av ASP.NET-webbsidor -sammansättningar (till exempel Microsoft.WebPages.dll) till mappen Bin på webbplatsen på servern. (Detta kan ha skett automatiskt under distributionen eller på grund av att utvecklaren uttryckligen kopierade sammansättningarna.) Men när Beta 3-versionen är installerad uppstår fel, till exempel fel som vissa typer inte kan hittas. Detta beror på att ett antal ASP.NET webbsidor har flyttats till olika namnområden för Beta 3-versionen.

Lösning
Rensa mappen Bin för det distribuerade programmet, kopiera de nya sammansättningarna till mappen (eller distribuera om programmet) och starta sedan om programmet.

Problem: Tilläggslösa URL:er hittar inte .cshtml/.vbhtml-filer på IIS 7 eller IIS 7.5

På IIS 7 eller IIS 7.5 kan begäranden med en URL som följande inte hitta sidor som har tillägget .cshtml eller .vbhtml :

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

Problemet uppstår eftersom URL-omskrivning inte är aktiverat som standard för IIS 7 eller IIS 7.5. Det mest lika scenariot är att du inte ser problemet när du testar lokalt med IIS Express, men du upplever det när du distribuerar din webbplats till en värdwebbplats.

Lösning

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

Problem: Använda Web Application Project eller ASP.NET MVC och ASP.NET webbsidor i samma program

Om du använde ASP.NET webbsidor i ett webbprogramprojekt eller ASP.NET MVC-program kan det uppstå ett fel om att WebPageHttpApplication inte kan hittas.

Lösning
Om du får det här felet ändrar du basklassen som programmet härleds från. Ändra följande rad i filen Global.asax :

public class MvcApplication :  WebPageHttpApplication { ... }

Så här:

public class MvcApplication :  HttpApplication { ... }

Detta vänder i själva verket en ändring som introducerades för Beta 1-versionen av ASP.NET webbsidor med Razor-syntax.

Problem: Distribuera ett program till en dator som inte har SQL Server Compact installerat

Program som innehåller SQL Server Compact-databaser kan köras på en dator där SQL Server Compact inte är installerat. Microsoft WebMatrix Beta 3 kopierar automatiskt dessa binärfiler åt dig och utför lämpliga Web.config filtransformeringar.

Lösning Om du behöver kopiera dessa filer och göra Web.config filändringar manuellt gör du följande:

  1. Kopiera databasmotorsammansättningarna till mappen Bin (och undermappar) för programmet på måldatorn:

    • Kopiera C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dlltill\Bin
    • Kopiera C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to\Bin\x86
    • Kopiera C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to\Bin\amd64
  2. Skapa eller öppna en Web.config fil i rotmappen på webbplatsen. (I WebMatrix Beta 3 är den här filtypen tillgänglig om du klickar på Alla i dialogrutan Välj en filtyp .)

  3. Lägg till följande element som ett barn till <konfigurations>elementet (inte i <system.web->elementet):

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

Problem: Databas- och WebGrid-hjälpen fungerar inte i Medium Trust i Visual Basic

Om du använder Visual Basic (skapar .vbhtml-filer), så fungerar inte Database- och WebGrid-hjälparna om programmet är inställt på att använda Medium Trust.

Lösning
Ange tillfälligt att programmet ska använda fullständigt förtroende.

SQL Server Compact

Problem: Egenskapen "Kryptera" känns inte igen

SQL Server Compact 4.0 känner inte igen Encrypt klassens SqlCeConnection egenskap. Du bör inte använda den här egenskapen för att kryptera databasfiler. Egenskapen Encrypt är inaktuell i SQL Server Compact 3.5-versionen och behålls endast för bakåtkompatibilitet.

Lösning
Encryption Mode Använd egenskapen för SqlCeConnection klassen för att kryptera SQL Server Compact 4.0-databasfiler. I följande exempel visas hur du skapar en krypterad SQL Server Compact 4.0-databas med egenskapen Encryption Mode :

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;");
engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=Password=;p;w;here;>;")
engine.CreateDatabase()

Om du vill ändra krypteringsläget för en befintlig SQL Server Compact 4.0-databas gör du följande:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=Password=;p;w;here;>;");
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=Password=;p;w;here;>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=Password=;p;w;here;>;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=Password=;p;w;here;>;")

Gör följande för att kryptera en okrypterad SQL Server Compact 4.0-databas:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf");
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;")

Problem: Microsoft Visual C++ 2008-körningsbibliotek krävs

De interna DLL:erna för SQL Server Compact 4.0 behöver Microsoft Visual C++ 2008 Runtime Libraries (x86, IA64 och x64), Service Pack 1.

Lösning
Installera .NET Framework 3.5 SP1. Detta installerar även Visual C++ 2008 Runtime Libraries SP1. Du kan ladda ned biblioteken från följande plats:

Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL säkerhetsuppdatering

Anmärkning

Observera att installation av .NET Framework 2.0, 3.0 eller 4 inte installerar VISUAL C++ 2008 Runtime Libraries SP1.

Problem: Om SQL Server Compact installeras innan .NET Framework installeras på datorn registreras inte providerns invarianta namn i .NET Framework machine.config-filen

SQL Server Compact kan installeras på en dator som inte har .NET Framework installerat eftersom SQL Server Compact kräver .NET-ramverket. Om varken .NET Framework version 3.5 eller 4 är installerad innan du installerar SQL Server Compact, registreras inte det invariant namn på leverantören i machine.config-filen. Alla program som förlitar sig på SQL Server Compact-posten i machine.config-filen misslyckas. Registreringsposten för invarianta namn i machine.config ser ut som i följande exempel:

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

Lösning
Avinstallera SQL Server Compact 4.0 CTP1. Ladda ned och installera de fullständiga versionerna av .NET Framework från följande plats:

Microsoft .NET Framework 3.5 Service Pack 1 (fullständigt paket)
Microsoft .NET Framework 4.0 Utgåva (Fullständigt Paket)

Installera SQL Server Compact 4.0 SP1 sedan på nytt.

Installera applikationer

Problem: Det kan ta lång tid att installera ett program om användarens mapp Mina dokument omdirigeras till en nätverksresurs

Lösning
Ingen. Det kan ta en stund att installera programmet, men det installeras på rätt sätt.

Publicera applikationer

Problem: Webbplatsen kanske inte fungerar efter publiceringen om fältet "Mål-URL" inte är prefixet med http:// eller https://

Om mål-URL:en inte börjar med eller http://i dialogrutan https:// kanske webbplatsen inte fungerar efter distributionen.

Lösning
Kontrollera att mål-URL:en i dialogrutan Publicera inställningar börjar med http:// eller https://innan du publicerar en webbplats.

Problem: Det går inte att publicera en MySQL-databas med felet "Det gick inte att publicera databasen. Detta kan inträffa om fjärrdatabasen inte kan köra skriptet."

Felet kan inträffa av flera orsaker. En anledning till att du kan se det här felet är om databasskriptet innehåller ett enkelt citattecken (') och mySQL-måldatabasens standardteckenuppsättning inte är UTF-8.

Lösning
Ange standardteckenuppsättningen för mySQL-fjärrdatabasen till UTF-8.

Andra problem

Problem: Sökning/filter fungerar inte i rapporter för grupp efter: Problemtyp

När du kör en rapport för en webbplats, om du anger text i rutan Filtrera efter URL och klickar på Sök, händer ingenting. Detta beror på att den här kontrollen inte fungerar medan rapportens Gruppera efter-tillstånd är inställt på Ärendetyp, vilket är standardinställningen.

Lösning På fliken Gruppera efter i menyfliksområdet klickar du på URL för att gruppera posterna efter deras käll-URL. Textrutan och knappen för att filtrera posterna fungerar i det här tillståndet.

Problem: WCF-program kan inte köras med IIS Express

Om du bläddrar till ett WCF-program uppstår ett fel som liknar följande:

Det gick inte att läsa in filen eller sammansättningen "Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" eller något av dess beroenden. Det går inte att hitta den angivna filen.

Detta beror på att IIS Express Beta-versionen inte stöder WCF som standard.

Lösning Använd någon av följande lösningar (lösning nr 2 kräver Microsoft Windows Vista eller senare):

  1. Kopiera Microsoft.Web.dll - och Microsoft.Web.Administration.dll-sammansättningarna från installationsplatsen WebMatrix till bin-katalogen för WCF-programmet. Som standard installeras WebMatrix i undermappen Microsoft WebMatrix under systemets Program Files-mapp .

  2. I Microsoft Windows Vista eller senare skapar du en symlink till sammansättningarna i bin-katalogen med hjälp av följande kommandon. (Den här metoden har fördelen att den inte skapar en kopia av sammansättningarna.)

    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. Installera de två sammansättningarna i GAC. Kör följande kommandon från en upphöjd prompt:

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

Problem: WebMatrix Beta 3 kan inte utföra vissa uppgifter som kräver utökade privilegier

WebMatrix Beta 3 kan inte utföra vissa uppgifter som kräver utökade privilegier, till exempel att installera ytterligare komponenter i följande situationer:

  • I Windows Vista eller Windows 7 loggas du in med ett konto som inte har administratörsbehörighet och UAC (User Account Control) är inaktiverat.
  • Du använder Microsoft Windows XP eller Microsoft Windows Server 2003.

Lösning
De flesta uppgifter i WebMatrix Beta 3 kräver inte administrativ behörighet. För dem som gör det kan du utföra åtgärden som administratör eller följa dessa steg:

  • Aktivera UAC i Windows Vista eller Windows 7.
  • I Windows XP lägger du till användaren i säkerhetsgruppen Administratörer.

Alternativet Webbplats från webbgalleriet är inaktiverat om installationsprogrammet för webbplattformen 3.0 inte är installerat.

Lösning
Installera Microsoft Web Platform Installer 3.0.

Problem: På Windows Server 2003 startar inte IIS Express för en icke-administrativ användare

När du startar en sida eller startar IIS Express i Windows Server 2003 startar inte IIS Express. För webbsidor visas ett fel som anger att programmet har startats av en icke-administrativ användare.

Lösning
Starta WebMatrix Beta 3 som administrativ användare.

Problem: Google Chrome är inte tillgängligt som kör-alternativ

Google Chrome visas inte i listan över webbläsare under Kör på fliken Start .

Lösning
Vissa versioner av Google Chrome registrerar sig inte korrekt med funktionen Standardprogram i Windows. Som en lösning startar du Google Chrome, klickar på menyn Anpassa och styr Google Chrome , klickar på Alternativ och klickar sedan på Gör Google Chrome till min standardwebbläsare.

Problem: Dialogrutan "Sekundärnyckel" tillåter inte att en primärnyckel anges

I dialogrutan Sekundärnyckel kan du inte ange primärnyckelnamnet från primärnyckeltabellen.

Lösning
Detta är avsiktligt. Du behöver inte ange namnet på primärnyckeln från primärnyckeltabellen.

Problem: Knappen "Relationer" är inaktiverad

Knappen Relationer under fliken Tabell på arbetsytan Databaser är inaktiverad för SQL Server Compact-databaser.

Lösning
Ingen. SQL Server Compact stöder inte relationer mellan tabeller.

Problem: Parameteriserade SQL-frågor utlöser undantag

Om du inte anger någon datatyp i SQL Server Compact 4.0, till exempel SqlDbType eller DbType för parametrar i parametriserade frågor, genereras ett undantag när frågan körs.

Lösning
Ange uttryckligen datatypen för parametrar som SqlDbType eller DbType. Detta är kritiskt när det gäller BLOB-datatyper (image och ntext). Använd kod som följande:

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

Mer information

Mer information om WebMatrix Beta 3 finns på följande webbplatser: