Delen via


Leesmij voor WebMatrix en ASP.NET Webpagina's (Razor) Bèta 3

Leesmij voor WebMatrix en ASP.NET Webpagina's (Razor) Bèta 3

9 november 2010

Inhoud

Overzicht

Microsoft WebMatrix Beta is een gratis webontwikkelingsstack die in enkele minuten wordt geïnstalleerd. Het integreert een webserver met database- en programmeerframeworks om één geïntegreerde ervaring te creëren. U kunt WebMatrix Beta gebruiken om uw eigen ASP.NET- of PHP-website efficiënter te coderen, testen en publiceren, of om een nieuwe website te beginnen met populaire opensource-apps zoals DotNetNuke, Umbraco, WordPress of Joomla. WebMatrix Beta maakt gebruik van dezelfde krachtige webserver-, database-engine- en frameworkomgeving die uw website op internet uitvoert, waardoor de overgang van ontwikkeling naar productie soepel en naadloos verloopt.

Installatie

Opmerking

WebMatrix wordt niet meer aanbevolen als een geïntegreerde ontwikkelomgeving voor ASP.NET webpagina's. Gebruik Visual Studio of Visual Studio Code.

Als u problemen ondervindt tijdens de installatie, raadpleegt u Problemen oplossen met het installatieprogramma van Microsoft Web Platform.

Instructies voor het publiceren van toepassingen

Zie stapsgewijze instructies voor het publiceren van toepassingen

Nieuwe functies, wijzigingen en bekende problemen

Installatie van WebMatrix Beta 3

Probleem: WebMatrix Beta 3 is alleen beschikbaar op platforms die Microsoft .NET Framework 4 ondersteunen

De .NET Framework versie 4 is vereist voor WebMatrix Beta. In bepaalde gevallen kunt u met het webmatrix beta-installatieprogramma proberen te installeren op een platform dat geen deel uitmaakt van de ondersteunde configuratieset. Met name Windows Vista zonder de SP1-update kunt u beginnen met de installatie van WebMatrix Beta, maar het .NET Framework 4-onderdeel zal mislukken en uw installatie blokkeren.

Tijdelijke oplossing
Installeren op een ondersteund platform, waaronder:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 of hoger
  • Windows XP SP3
  • Windows Server 2003 SP2

Probleem: Kan WebMatrix Beta 3 niet installeren als Microsoft Visual Studio 2008 is geïnstalleerd zonder Microsoft Visual Studio 2008 SP1

Tijdelijke oplossing
Installeer Microsoft Visual Studio 2008 Service Pack 1 vanuit het Microsoft Downloadcentrum.

Probleem: Sommige assembly's voor SQL Server Compact 4.0 zijn niet geïnstalleerd in de GAC

De beheerde assembly's voor SQL Server Compact 4.0 worden niet in de algemene assemblycache (GAC) geplaatst wanneer u SQL Server Compact 4.0 installeert op een 64-bits computer en de computer alleen het .NET Framework 3.5 SP1-clientprofiel heeft geïnstalleerd. De beheerde assembly's die niet in de GAC zijn geïnstalleerd, zijn:

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

Tijdelijke oplossing
Verwijder SQL Server Compact 4.0. Download en installeer de volledige versie van .NET Framework 3.5 SP1 vanaf de volgende locatie:

Microsoft .NET Framework 3.5 Service Pack 1 (volledig pakket)

Installeer vervolgens SQL Server Compact 4.0 opnieuw.

Probleem: KAN SQL Server Compact niet verwijderen met behulp van de opdrachtregel

Het verwijderen van SQL Server Compact met opdrachtregelopties werkt niet in deze release.

Tijdelijke oplossing
Gebruik Programma's en onderdelen in het Configuratiescherm van Windows om Microsoft SQL Server Compact 4.0 te verwijderen.

ASP.NET Webpagina's

In deze sectie van het document worden nieuwe functies, wijzigingen en bekende problemen beschreven met de bètaversie van ASP.NET webpagina's met Razor-syntaxis.

Nieuwe functies in bèta 3 voor ASP.NET webpagina's met Razor-syntaxis

Nieuw: De methode Html.Raw geeft niet-gecodeerde markeringen weer

Met de nieuwe Html.Raw methode kunt u HTML-markeringen weergeven als markeringen in plaats van gecodeerde uitvoer. (Standaard codeert ASP.NET Razor tekenreeksen voordat ze worden weergegeven.) De syntaxis is:

Html.Raw(value)

In het volgende voorbeeld ziet u hoe u Html.Rawgebruikt:

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

Wijzigingen in bèta 3 voor ASP.NET webpagina's met Razor-syntaxis

Wijziging: methode HrefAttribute verwijderd

De HrefAttribute methode van de WebPage klasse is verwijderd. Deze helper is gebruikt om onveilige tekens in URL's te coderen. Dit is niet meer vereist omdat ASP.NET Razor tekenreeksen automatisch codeert. (Gebruik de nieuwe Html.Raw methode om niet-gecodeerde tekenreeksen weer te geven.)

Wijziging: De syntaxis voor declaratieve @helper-helpers is gewijzigd

In de bètaversie 3 wijzigt ASP.NET hoe helpers worden geparseerd die zijn gemaakt met behulp van de @helper syntaxis. In wezen wordt de @helper syntaxis nu geparseerd als een codeblok in plaats van als een blok met markeringen die code kunnen bevatten. Code in de helper hoeft daarom niet in @{ } blokken te worden geplaatst. Omgekeerd moeten markeringen in de helper expliciet worden opgenomen in HTML-elementen of in ASP.NET Razor-tags <text></text> .

De volgende @helper syntaxis werkt bijvoorbeeld in de bètaversie 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>
}

In de bètaversie 3 moet deze helper worden gewijzigd zodat deze eruitziet als in het volgende voorbeeld:

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

U ziet dat de @{ } tekens rond de initiële code in de helper niet meer worden gebruikt. Dit komt doordat de inhoud van de helpers standaard wordt behandeld als een codeblok. De helper geeft markeringen weer, die begint met de openingstag <a> . Als de helper tekst zonder opmaak moet weergeven of tags die geen afsluitende tag bevatten (bijvoorbeeld <meta> tags), moet de inhoud die moet worden weergegeven, zich in <text></text> tags bevinden.

Wijziging: "WebPageContext.HttpContext" verwijderd

De WebPageContext.HttpContext eigenschap is verwijderd. Gebruik in plaats daarvan HttpContext.Current. (De WebPageContext.HttpContext eigenschap omvatte dit simpelweg.)

Wijziging: Helper 'Facebook' verplaatst naar nieuw pakket

De Facebook helper is verplaatst naar de Facebook.Helper-bibliotheek , die de Facebook helper en aanvullende functionaliteit bevat. U moet deze bibliotheek installeren als een afzonderlijk pakket, zoals beschreven in 'Helpers installeren met Package Manager' in de zelfstudie Aan de slag met ASP.NET Pagina's.

Wijziging: lidmaatschap, rol en beveiligingstypen worden verplaatst naar een nieuwe assembly

De volgende typen zijn verplaatst naar de WebMatrix.WebData assembly:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Wijziging: "TagBuilder" klasse verplaatst naar System.Web.WebPages.dll assembly

De TagBuilder klasse is verplaatst naar de System.Web.WebPages.dll assembly. Voorheen was dit in een assembly die deel uitmaakte van ASP.NET MVC. Deze wijziging betekent dat u ASP.NET MVC niet hoeft te installeren om de TagBuilder klasse te kunnen gebruiken.

De klasse bevindt zich echter nog steeds in de System.Web.Mvc naamruimte. Als u de TagBuilder klasse wilt gebruiken (bijvoorbeeld in een aangepaste ASP.NET Razor-helper), moet u verwijzen naar de naamruimte (bijvoorbeeld door toe te voegen @using System.Web.Mvc aan uw code).

Wijziging: Validatiesyntaxis van aanvraag gewijzigd; De klasse Validatie is verwijderd

Als u in de bèta 3-versie validatie voor een afzonderlijk veld of een set velden wilt uitschakelen, kunt u de Validation.Exclude methode aanroepen, waarbij u de naam of namen van de velden doorgeeft die moeten worden uitgesloten van validatie. Er is een nieuwe syntaxis beschikbaar in de bètaversie 3 voor het omzeilen van validatie. De Validation methode die in bèta 3 wordt gebruikt, is verwijderd.

Opmerking

Als u aanvraagvalidatie niet uitschakelt, als gebruikers HTML-markeringen proberen te uploaden (bijvoorbeeld door een rtf-teksteditor op een pagina te gebruiken), rapporteert de website een fout zoals een mogelijk gevaarlijke Request.Form-waarde die is gedetecteerd door de client en de invoer van de gebruiker wordt niet geaccepteerd. Als u aanvraagvalidatie uitschakelt, moet u handmatig gebruikersinvoer controleren om ervoor te zorgen dat deze geen potentieel gevaarlijke markeringen of scripts bevat door XSS (Cross-Site Scripting) in ASP.NET Core te voorkomen.

Als u automatische aanvraagvalidatie wilt uitschakelen, roept u de Request.Unvalidated methode aan en geeft u deze door aan de naam van het veld of een ander postobject waarvoor u aanvraagvalidatie wilt overslaan. U kunt deze methode gebruiken om validatie voor alle items in de Form, QueryStringen Cookiesverzamelingen ServerVariables te omzeilen. In de volgende voorbeelden ziet u hoe u de Unvalidated methode gebruikt:

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

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

Bekende problemen voor ASP.NET webpagina's met Razor-syntaxis

Probleem: Onverwacht gedrag bij het gebruik van een aangepaste gebruikerstabel voor lidmaatschap

Als u de lidmaatschapsprovider voor een ASP.NET Razor-website wilt initialiseren, roept u de WebSecurity.InitializeDatabaseConnection methode aan. (In WebMatrix bevat de sjabloon Startersite een aanroep naar deze methode in het bestand _AppStart.cshtml .) Als de autoCreateTables parameter van deze methode is ingesteld op true (standaard is deze ingesteld op true in de startersitesjabloon) en als een niet-herkende tabelnaam wordt doorgegeven aan de methode (de tweede parameter), genereert de methode geen fout. In plaats daarvan wordt de tabel automatisch gemaakt.

Dit kan een probleem zijn als u van plan bent om een aangepaste gebruikerstabel te gebruiken voor lidmaatschap, maar de verkeerde tabelnaam doorgeeft aan de WebSecurity.InitializeDatabaseConnection methode. Omdat de methode niet standaard een fout genereert als de door u opgegeven tabel niet bestaat en omdat er in plaats daarvan een nieuwe tabel wordt gemaakt, kan de toepassing lijken te werken. Toepassingscode die afhankelijk is van uw aangepaste gebruikerstabel (en op velden erin) kan echter uiteindelijk mislukken met onverwachte fouten.

Tijdelijke oplossing
Zorg ervoor dat de naam die is doorgegeven in de InitializeDatabaseConnection methode overeenkomt met de tabel met gebruikersprofielen in de lidmaatschapsdatabase of zorg ervoor dat de autoCreateTables parameter is ingesteld op false.

Probleem: fout 'Kan geen gebruikersexemplaren van SQL Server genereren'

Als een WebMatrix-webtoepassing GEBRUIKMAAKT van SQL Server Express en IIS 7.5 uitvoert op Windows 7 of Windows Server 2008 R2, ziet u mogelijk een fout die aangeeft dat SQL Server het lokale toepassingspad van de gebruiker niet tijdens runtime kan ophalen.

Tijdelijke oplossing Zorg ervoor dat het Windows-account waaronder de toepassing wordt uitgevoerd (meestal NETWORK SERVICE) lees-/schrijfmachtigingen heeft voor hoofdmappen van de toepassing en voor submappen zoals App_Data. Meer gedetailleerde informatie is beschikbaar op Problemen met sql Server Express-gebruikersinstancing en ASP.net Web Application Projects.

Probleem: In Visual Studio worden naamruimten voor aangepaste assembly's (DLL's) niet automatisch geïmporteerd

Als u aangepaste assembly's gebruikt in een project in Visual Studio, worden de naamruimten die in deze assembly's zijn gedeclareerd, niet automatisch geïmporteerd tijdens het ontwerp. Als gevolg hiervan worden verwijzingen naar aangepaste typen mogelijk niet herkend tijdens de ontwerpfase en worden ze gemarkeerd als niet herkend in Visual Studio (met behulp van een 'golvend lijntje'). Dit probleem treedt alleen op tijdens het ontwerp in Visual Studio; de toepassing zelf correct wordt uitgevoerd.

Tijdelijke oplossing
Neem een using instructie (imports in Visual Basic) op die verwijst naar de entiteiten die niet worden herkend tijdens het ontwerp.

Probleem: Visual Studio IntelliSense en projectsjablonen die alleen beschikbaar zijn in ASP.NET MVC versie 3

Als u ASP.NET webpagina's installeert, worden ook geen hulpprogramma's voor Visual Studio geïnstalleerd, zoals IntelliSense en projectsjablonen voor ASP.NET webpaginatoepassingen.

Tijdelijke oplossing Als u IntelliSense en projectsjablonen wilt gebruiken voor ASP.NET webpaginatoepassingen in Visual Studio, installeert u ASP.NET MVC 3 RC via het webplatforminstallatieprogramma of het zelfstandige installatieprogramma.

Probleem: fout '<helperklasse> kan niet worden gevonden'

Nadat u een upgrade naar bèta 3 hebt uitgevoerd, ziet u mogelijk een fout dat een helperklasse (bijvoorbeeld de Facebook klasse) niet kan worden gevonden. Vanaf bèta 2 en verder in bèta 3, zijn hulpprogramma's verplaatst naar pakketten die u expliciet moet installeren. Bestaande sites worden niet bijgewerkt om deze pakketten op te nemen; dit omvat sites in de mappen \Mijn documenten\IISExpress of \Mijn documenten\Mijn websites . Deze fout wordt met name weergegeven als u de standaardsite in Mijn sites (WebSite1) gebruikt, die een verwijzing naar de Twitter helper bevat.

Tijdelijke oplossing
Markeer aanroepen naar helpers op de site, voer de pagina _Admin uit en installeer het pakket of de pakketten die de helpers bevatten die u wilt gebruiken. Nadat u het pakket hebt geïnstalleerd, kunt u opmerkingen bij de regels die verwijzen naar helpers ongedaan maken.

Probleem: Het implementeren van Bèta 3 ASP.NET Razor-assembly's in de map Bin werkt mogelijk niet op hostingsites

Als u een website van ASP.NET webpagina's implementeert op een hostingsite en als u de ASP.NET Razor Beta 3-assembly's implementeert in de map Bin van de site, kunnen er fouten optreden, waaronder het volgende:

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

Dit kan gebeuren als de hostingprovider de ASP.NET webpagina's Beta 1-assembly's heeft geïnstalleerd in de algemene toepassingscache van de server (GAC). Assembly's in de GAC krijgen voorrang op assembly's die lokaal in de map Bin zijn geïnstalleerd.

Tijdelijke oplossing Neem contact op met uw hostingprovider om te bevestigen dat de fouten die u ziet worden veroorzaakt door een conflict tussen de versies van de provider van de assembly's en die van u. Zo ja, vraag dan of de hostingprovider de assembly's in de GAC van de server bijwerkt.

Probleem: feeds of andere externe gegevens lezen via een proxyserver

Als de server waarop de site wordt uitgevoerd zich achter een proxyserver bevindt, moet u mogelijk proxygegevens configureren in het Web.config-bestand om informatie te kunnen lezen die afkomstig is van buiten uw site. Als u bijvoorbeeld de ReCaptcha helper gebruikt, communiceert de helper met de reCAPTCHA-service, maar wordt deze mogelijk geblokkeerd door uw proxyserver. Op dezelfde manier kunnen feeds die worden gebruikt in ASP.NET webpagina's, zoals de feed die door pakketbeheer wordt gebruikt, proxyconfiguratie vereisen.

Als u problemen ondervindt bij het werken met een externe service of het werken met de pakketfeed, plaatst u de volgende elementen in het hoofdbestand van uw toepassing Web.config :

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

Zie proxy-element< (netwerkinstellingen) op de MSDN-website voor meer informatie over het configureren van een proxyserver>.

Probleem: fout 'Microsoft.Web.Infrastructure.dll kan niet worden geladen'

Als u eerder de Bèta 1-versie van ASP.NET webpagina's met Razor-syntaxis hebt geïnstalleerd en vervolgens de bèta 3-versie installeert, worden alle geschikte assembly's geïnstalleerd in de GAC, met uitzondering vanMicrosoft.Web.Infrastructure.dll. Als u ASP.NET Razor-pagina's uitvoert, ziet u een fout die aangeeft dat Microsoft.Web.Infrastructure.dll niet kan worden geladen.

Dit probleem treedt niet op als u de bètaversie 3 op een schone computer hebt geladen.

Tijdelijke oplossing
Verwijder ASP.NET webpagina's in het Configuratiescherm. Installeer vervolgens de bètaversie 3 opnieuw.

Probleem: Als u .NET Framework versie 4 verwijdert, worden ASP.NET webpagina's met Razor-syntaxis uitgeschakeld

Als u .NET Framework versie 4 verwijdert en vervolgens opnieuw installeert, is ASP.NET webpagina's met Razor-syntaxis uitgeschakeld. Pagina's met de extensie .cshtml worden niet correct uitgevoerd. ASP.NET Web Pages registreert een assembly in het Web.config bestand in de hoofdmap van de computer, en wanneer u het .NET Framework verwijdert, wordt dat bestand ook verwijderd. Als u .NET Framework opnieuw installeert, wordt een nieuwe versie van het configuratiebestand geïnstalleerd, maar wordt de verwijzing voor de assembly ASP.NET webpagina's niet toegevoegd.

Tijdelijke oplossing Nadat u .NET Framework opnieuw hebt geïnstalleerd, installeert u ASP.NET webpagina's opnieuw met razor-syntaxis. Hiermee voegt u het volgende element toe aan het Web.config-bestand in de hoofdmap van de computer, meestal op de volgende locatie:

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>

Probleem: Toepassingen die eerder zijn geïmplementeerd met ASP.NET assembly's in de bin-map, ondervinden fouten

Tijdens de implementatie worden kopieën van de ASP.NET Web Pages-assemblages (bijvoorbeeld Microsoft.WebPages.dll) naar de map Bin van de website op de server gemaakt. (Dit is mogelijk automatisch gebeurd tijdens de implementatie of omdat de ontwikkelaar de assembly's expliciet heeft gekopieerd.) Wanneer de bètaversie 3 is geïnstalleerd, treden er echter fouten op, zoals fouten die niet kunnen worden gevonden in bepaalde typen. Dit komt doordat een aantal ASP.NET webpaginatypen zijn verplaatst naar verschillende naamruimten voor de bètaversie 3.

Tijdelijke oplossing
Wis de Bin-map van de geïmplementeerde applicatie, kopieer de nieuwe assemblies naar de map (of implementeer de applicatie opnieuw) en start vervolgens de applicatie opnieuw.

Probleem: URL's zonder extensie vinden geen .cshtml/.vbhtml-bestanden op IIS 7 of IIS 7.5

Op IIS 7 of IIS 7.5 kunnen aanvragen met een URL zoals de volgende niet vinden pagina's met de extensie .cshtml of .vbhtml :

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

Het probleem treedt op omdat URL-herschrijven niet standaard is ingeschakeld voor IIS 7 of IIS 7.5. Het mooiste scenario is dat u het probleem niet ziet bij het lokaal testen met IIS Express, maar u ondervindt dit wanneer u uw website implementeert op een hostingwebsite.

Tijdelijke oplossing

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

Probleem: het gebruik van een Web Application Project, ASP.NET MVC en ASP.NET webpagina's in dezelfde toepassing.

Als u ASP.NET webpagina's in een webtoepassingsproject of ASP.NET MVC-toepassing gebruikt, ziet u mogelijk een fout dat WebPageHttpApplication niet kan worden gevonden.

Tijdelijke oplossing
Als u deze fout krijgt, wijzigt u de basisklasse waaruit de toepassing is afgeleid. Wijzig in het bestand Global.asax de volgende regel:

public class MvcApplication :  WebPageHttpApplication { ... }

Naar dit:

public class MvcApplication :  HttpApplication { ... }

Hiermee wordt een wijziging omgekeerd die is geïntroduceerd voor de bètaversie 1 van ASP.NET webpagina's met Razor-syntaxis.

Probleem: Een toepassing implementeren op een computer waarop SQL Server Compact niet is geïnstalleerd

Toepassingen met SQL Server Compact-databases kunnen worden uitgevoerd op een computer waarop SQL Server Compact niet is geïnstalleerd. Microsoft WebMatrix Beta 3 kopieert deze binaire bestanden automatisch voor u en voert de juiste Web.config bestandstransformaties uit.

Tijdelijke oplossing Als u deze bestanden moet kopiëren en het Web.config-bestand handmatig wilt wijzigen, gaat u als volgt te werk:

  1. Kopieer de assemblies van de database-engine naar de Bin map (en bijbehorende submappen) van de toepassing op de doelcomputer.

    • Kopieer C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dllnaar\Bin
    • Kopieer C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* naar\Bin\x86
    • Kopieer C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* naar\Bin\amd64
  2. Maak of open een Web.config bestand in de hoofdmap van de website. (In WebMatrix Beta 3 is dit bestandstype beschikbaar als u op Alles klikt in het dialoogvenster Bestandstype kiezen .)

  3. Voeg het volgende element toe als onderliggend element van het <configuratie-element> (niet binnen het <element 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>

Probleem: Database- en WebGrid-helpers werken niet in Medium Trust in Visual Basic

Als u Visual Basic gebruikt ( .vbhtml-bestanden maken), werken de Database en WebGrid helpers niet als de toepassing is ingesteld op het gebruik van Medium Trust.

Tijdelijke oplossing
Stel de toepassing tijdelijk in op volledig vertrouwen.

SQL Server Compact

Probleem: eigenschap Versleutelen wordt niet herkend

SQL Server Compact 4.0 herkent de Encrypt eigenschap van de SqlCeConnection klasse niet. Gebruik deze eigenschap niet om databasebestanden te versleutelen. De Encrypt eigenschap is afgeschaft in de release van SQL Server Compact 3.5 en is alleen behouden voor achterwaartse compatibiliteit.

Tijdelijke oplossing
Gebruik de Encryption Mode eigenschap van de SqlCeConnection klasse om SQL Server Compact 4.0-databasebestanden te versleutelen. In het volgende voorbeeld ziet u hoe u een versleutelde SQL Server Compact 4.0-database maakt met behulp van de Encryption Mode eigenschap:

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

Ga als volgt te werk om de versleutelingsmodus van een bestaande SQL Server Compact 4.0-database te wijzigen:

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

Ga als volgt te werk om een niet-versleutelde SQL Server Compact 4.0-database te versleutelen:

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

Probleem: Runtimebibliotheken van Microsoft Visual C++ 2008 zijn vereist

De systeemeigen DLL's van SQL Server Compact 4.0 hebben de Microsoft Visual C++ 2008 Runtime-bibliotheken (x86, IA64 en x64), Service Pack 1 nodig.

Tijdelijke oplossing
Installeer .NET Framework 3.5 SP1. Hiermee installeert u ook visual C++ 2008 Runtime Libraries SP1. U kunt de bibliotheken downloaden vanaf de volgende locatie:

Microsoft Visual C++ 2008 Service Pack 1 Herdistribueerbaar pakket ATL-beveiligingsupdate

Opmerking

Houd er rekening mee dat het installeren van .NET Framework 2.0, 3.0 of 4 de Visual C++ 2008 Runtime Libraries SP1 niet installeert.

Probleem: Als SQL Server Compact is geïnstalleerd voordat .NET Framework op de computer wordt geïnstalleerd, wordt de provider invariantnaam niet geregistreerd in het .NET Framework-machine.config-bestand

SQL Server Compact kan worden geïnstalleerd op een computer waarop .NET Framework niet is geïnstalleerd omdat SQL Server Compact wel het .NET Framework vereist. Als noch .NET Framework versie 3.5 noch 4 is geïnstalleerd voordat u SQL Server Compact installeert, registreert de installatie van SQL Server Compact zijn invariante naam van de provider niet in het machine.config-bestand . Elke toepassing die afhankelijk is van de vermelding SQL Server Compact in het machine.config-bestand , mislukt. De vermelding voor invariante naamregistratie in machine.config ziet er als volgt uit:

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

Tijdelijke oplossing
Verwijder SQL Server Compact 4.0 CTP1. Download en installeer de volledige versies van .NET Framework vanaf de volgende locatie:

Microsoft .NET Framework 3.5 Service Pack 1 (volledig pakket)
Microsoft .NET Framework 4.0 Release (volledig pakket)

Installeer vervolgens SQL Server Compact 4.0 SP1 opnieuw.

Toepassingen installeren

Probleem: het installeren van een toepassing kan lang duren als de map Mijn documenten van de gebruiker wordt omgeleid naar een netwerkshare

Tijdelijke oplossing
Geen. Het installeren van de toepassing kan enige tijd duren, maar wordt correct geïnstalleerd.

Toepassingen publiceren

Probleem: Site werkt mogelijk niet na publicatie als het veld Doel-URL niet voorafgegaan is aan http:// of https://

In het dialoogvenster Publicatie-instellingen, als de doel-URL niet begint met http:// of https://, werkt de site mogelijk niet na implementatie.

Tijdelijke oplossing
Zorg ervoor dat voordat u een site publiceert, de doel-URL in het dialoogvenster Publicatie-instellingen begint met http:// of https://.

Probleem: het publiceren van een MySQL-database mislukt met de fout 'Kan de database niet publiceren. Dit kan gebeuren als de externe database het script niet kan uitvoeren.

De fout kan om een aantal redenen optreden. Een van de redenen waarom u deze fout ziet, is als het databasescript één aanhalingsteken (') bevat en de standaardtekenset van de MySQL-doeldatabase niet is ingesteld op UTF-8.

Tijdelijke oplossing
Stel de standaardtekenset voor de externe MySQL-database in op UTF-8.

Overige problemen

Probleem: Zoeken/filteren werkt niet in Rapporten voor Groeperen op basis van: Probleemtype

Wanneer u een rapport uitvoert voor een site, als u tekst invoert in het vak Filteren op URL en op Zoeken klikt, gebeurt er niets. Dit komt doordat deze controle niet functioneel is terwijl de status van het rapport Groeperen op is ingesteld op Probleemtype, wat de standaardinstelling is.

Tijdelijke oplossing Klik op het tabblad Groeperen op in het lint op URL om de vermeldingen te groeperen op de bron-URL. Het tekstvak en de knop om de vermeldingen te filteren zijn functioneel in deze staat.

Probleem: WCF-toepassingen kunnen niet worden uitgevoerd met IIS Express

Bladeren naar een WCF-toepassing resulteert in een fout zoals in de volgende:

Kan bestand of assembly 'Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35' of een van de bijbehorende afhankelijkheden niet laden. Het systeem kan het opgegeven bestand niet vinden.

Dit gebeurt omdat iis Express Beta niet standaard WCF ondersteunt.

Tijdelijke oplossing Gebruik een van de volgende tijdelijke oplossingen (tijdelijke oplossing 2 vereist Microsoft Windows Vista of hoger):

  1. Kopieer de Microsoft.Web.dll en Microsoft.Web.Administration.dll assembly's van de installatielocatie van WebMatrix naar de bin-map van de WCF-toepassing. WebMatrix wordt standaard geïnstalleerd in de submap Microsoft WebMatrix onder de map Program Files van het systeem.

  2. Maak op Microsoft Windows Vista of hoger een symlink naar de assembly's in de bin-map met behulp van de volgende opdrachten. Deze methode heeft het voordeel dat er geen kopieën van de assemblies worden gemaakt.

    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. Installeer de twee assembly's in de GAC. Voer vanaf een prompt met verhoogde bevoegdheid de volgende opdrachten uit:

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

Probleem: WebMatrix Beta 3 kan bepaalde taken waarvoor uitbreiding is vereist, niet uitvoeren

WebMatrix Beta 3 kan bepaalde taken waarvoor uitbreiding is vereist, niet uitvoeren, zoals het installeren van extra onderdelen in de volgende situaties:

  • In Windows Vista of Windows 7 bent u aangemeld met een account dat geen beheerdersbevoegdheden heeft en UAC (User Account Control) is uitgeschakeld.
  • U gebruikt Microsoft Windows XP of Microsoft Windows Server 2003.

Tijdelijke oplossing
Voor de meeste taken in WebMatrix Beta 3 is geen beheerdersmachtiging vereist. Voor degenen die dit doen, kunt u de bewerking als beheerder uitvoeren of de volgende stappen uitvoeren:

  • Schakel UAC in op Windows Vista of Windows 7.
  • Voeg in Windows XP de gebruiker toe aan de beveiligingsgroep Administrators.

De optie Site uit de webgalerie is uitgeschakeld als het webplatforminstallatieprogramma 3.0 niet is geïnstalleerd.

Tijdelijke oplossing
Installeer het Microsoft Web Platform Installer 3.0.

Probleem: In Windows Server 2003 start IIS Express niet voor een niet-beheerdersgebruiker.

Wanneer u op Windows Server 2003 een pagina start of IIS Express start, start IIS Express niet. Voor webpagina's wordt een fout weergegeven die aangeeft dat de toepassing is gestart door een niet-gebruiker met beheerdersrechten.

Tijdelijke oplossing
Start WebMatrix Beta 3 als gebruiker met beheerdersrechten.

Probleem: Google Chrome is niet beschikbaar als optie Uitvoeren

Google Chrome wordt niet weergegeven in de lijst met browsers onder Uitvoeren op het tabblad Start .

Tijdelijke oplossing
Sommige versies van Google Chrome registreren zichzelf niet correct met de functie Standaardprogramma's in Windows. Start Google Chrome als tijdelijke oplossing, klik op het menu Google Chrome aanpassen en beheren , klik op Opties en klik vervolgens op Google Chrome mijn standaardbrowser maken.

Probleem: Het dialoogvenster Vreemde sleutel staat niet toe dat er een primaire sleutel wordt ingevoerd.

In het dialoogvenster Foreign Key kunt u niet de naam van de primaire sleutel uit de primaire-sleuteltabel invoeren.

Tijdelijke oplossing
Dit is opzettelijk. U hoeft niet de naam van de primaire sleutel uit de primaire-sleuteltabel in te voeren.

Probleem: de knop Relaties is uitgeschakeld

De knop Relaties onder het tabblad Tabel in de werkruimte Databases is uitgeschakeld voor SQL Server Compact-databases .

Tijdelijke oplossing
Geen. SQL Server Compact biedt geen ondersteuning voor relaties tussen tabellen.

Probleem: Geparameteriseerde SQL-query's genereren uitzonderingen

Als u in SQL Server Compact 4.0 geen gegevenstype opgeeft, zoals SqlDbType of DbType voor parameters in geparameteriseerde query's, wordt er een uitzondering gegenereerd wanneer de query wordt uitgevoerd.

Tijdelijke oplossing
Stel het gegevenstype expliciet in voor parameters zoals SqlDbType of DbType. Dit is van cruciaal belang in het geval van BLOB-gegevenstypen (image en ntext). Gebruik code als de volgende:

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

Voor meer informatie

Zie de volgende websites voor meer informatie over WebMatrix Beta 3: