Fichier Lisez-moi de WebMatrix et ASP.NET Web Pages (Razor) Bêta 3

Fichier Lisez-moi de WebMatrix et ASP.NET Web Pages (Razor) Bêta 3

9 novembre 2010

Contenu

Vue d’ensemble

Microsoft WebMatrix Beta est une pile de développement web gratuite qui s’installe en quelques minutes. Il intègre un serveur web avec des infrastructures de base de données et de programmation pour créer une expérience unique et intégrée. Vous pouvez utiliser WebMatrix Beta pour simplifier la façon dont vous codez, testez et publiez votre propre site web ASP.NET ou PHP, ou vous pouvez utiliser WebMatrix Beta pour démarrer un nouveau site web à l’aide d’applications open source populaires comme DotNetNuke, Umbraco, WordPress ou Joomla. WebMatrix Beta utilise le même puissant serveur web, moteur de base de données et environnement d’infrastructure qui exécutera votre site web sur Internet, ce qui rend la transition du développement à la production fluide et fluide.

Installation

Pour installer WebMatrix Beta 3, vous utilisez Microsoft Web Platform Installer 3.0. Une fois que vous avez installé le programme d’installation de plateforme web, vous pouvez l’utiliser pour installer WebMatrix Beta 3.

Si vous rencontrez des problèmes pendant l’installation, consultez Résolution des problèmes liés à Microsoft Web Platform Installer.

Instructions pour la publication d’applications

Consultez Instructions pas à pas pour la publication d’applications

Nouvelles fonctionnalités, modifications et problèmes de connaissance

Installation de WebMatrix Bêta 3

Problème : WebMatrix Bêta 3 est disponible uniquement sur les plateformes qui prennent en charge Microsoft .NET Framework 4

Le .NET Framework version 4 est requis pour WebMatrix Beta. Dans certains cas, le programme d’installation bêta de WebMatrix vous permet d’essayer d’installer sur une plateforme qui ne fait pas partie de l’ensemble de configuration pris en charge. En particulier, Windows Vista sans la mise à jour SP1 vous permettra de commencer l’installation de WebMatrix Beta, mais le composant .NET Framework 4 échouera et bloquera votre installation.

Solution de contournement
Installez sur une plateforme prise en charge, qui comprend :

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 ou ultérieur
  • Windows XP SP3
  • Windows Server 2003 SP2

Problème : Impossible d’installer WebMatrix Beta 3 si Microsoft Visual Studio 2008 est installé sans Microsoft Visual Studio 2008 SP1

Solution de contournement
Installez Microsoft Visual Studio 2008 Service Pack 1 à partir du Centre de téléchargement Microsoft.

Problème : certains assemblys pour SQL Server Compact 4.0 ne sont pas installés dans le GAC

Les assemblys managés pour SQL Server Compact 4.0 ne sont pas placés dans le global assembly cache (GAC) lorsque vous installez SQL Server Compact 4.0 sur un ordinateur 64 bits et que seul le profil client .NET Framework 3.5 SP1 est installé sur l’ordinateur. Les assemblys managés qui ne sont pas installés dans le GAC sont les suivants :

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

Solution de contournement
Désinstallez SQL Server Compact 4.0. Téléchargez et installez la version complète de .NET Framework 3.5 SP1 à partir de l’emplacement suivant :

Microsoft .NET Framework 3.5 Service Pack 1 (package complet)

Réinstallez ensuite SQL Server Compact 4.0.

Problème : Impossible de désinstaller SQL Server Compact à l’aide de la ligne de commande

La désinstallation de SQL Server Compact à l’aide d’options de ligne de commande ne fonctionne pas dans cette version.

Solution de contournement
Utilisez programmes et fonctionnalités dans le Panneau de configuration Windows pour désinstaller Microsoft SQL Server Compact 4.0.

Pages web ASP.NET

Cette section du document décrit les nouvelles fonctionnalités, les modifications et les problèmes connus liés à la version bêta 3 de pages Web ASP.NET avec la syntaxe Razor.

Nouvelles fonctionnalités de la version bêta 3 pour pages Web ASP.NET avec la syntaxe Razor

Nouveau : la méthode « Html.Raw » affiche le balisage non codé

La nouvelle Html.Raw méthode vous permet de restituer le balisage HTML sous forme de balisage au lieu de rendre la sortie encodée. (Par défaut, ASP.NET Razor encode les chaînes avant de les rendre.) La syntaxe est la suivante :

Html.Raw(value)

L'exemple suivant montre comment utiliser Html.Raw :

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

Modifications apportées à la version bêta 3 pour pages Web ASP.NET avec la syntaxe Razor

Modification : méthode « HrefAttribute » supprimée

La HrefAttribute méthode de la WebPage classe a été supprimée. Cette assistance a été utilisée pour encoder des caractères non sécurisés dans des URL. Elle n’est plus obligatoire, car ASP.NET Razor encode automatiquement les chaînes. (Utilisez la nouvelle Html.Raw méthode pour afficher des chaînes non codées.)

Modification : la syntaxe des assistances déclaratives « @helper » a été modifiée

Dans la version bêta 3, ASP.NET modifie la façon dont il analyse les aides créées à l’aide de la @helper syntaxe. En substance, la @helper syntaxe est désormais analysée comme un bloc de code au lieu d’un bloc de balisage pouvant inclure du code. Par conséquent, le code à l’intérieur de l’assistance n’a pas besoin d’être placé dans des @{ } blocs. À l’inverse, le balisage à l’intérieur de l’assistance doit être explicitement inclus dans des éléments HTML ou dans ASP.NET balises Razor <text></text> .

Par exemple, la syntaxe suivante @helper fonctionne dans la version bêta 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>
}

Dans la version bêta 3, cette assistance doit être modifiée pour ressembler à l’exemple suivant :

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

Notez que les @{ } caractères autour du code initial dans l’assistance ne sont plus utilisés. Cela est dû au fait que le contenu des helpers est traité comme un bloc de code par défaut. L’assistance affiche le balisage, qui commence par la balise d’ouverture <a> . Si l’assistance doit afficher du texte brut ou des balises qui n’incluent pas de balise fermante (par exemple, <meta> des balises), le contenu à afficher doit être dans <text></text> des balises.

Modification : « WebPageContext.HttpContext » supprimé

La propriété WebPageContext.HttpContext a été supprimée. Utilisez HttpContext.Current à la place. (La WebPageContext.HttpContext propriété a simplement encapsulé ceci.)

Modification : l’assistant « Facebook » a été déplacé vers un nouveau package

L’assistance Facebook a été déplacée vers le Facebook. Bibliothèque d’assistance, qui comprend l’assistance Facebook et des fonctionnalités supplémentaires. Vous devez installer cette bibliothèque en tant que package distinct, comme décrit dans « Installation des helpers avec le Gestionnaire de package » dans le tutoriel Prise en main avec ASP.NET Pages.

Modification : l’appartenance, le rôle et les types de sécurité sont déplacés vers un nouvel assembly

Les types suivants ont été déplacés vers l’assembly WebMatrix.WebData :

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Modification : la classe « TagBuilder » a été déplacée vers System.Web.WebPages.dll assembly

La TagBuilder classe a été déplacée vers l’assembly System.Web.WebPages.dll. Auparavant, c’était dans un assembly qui faisait partie de ASP.NET MVC. Cette modification signifie que vous n’avez pas besoin d’installer ASP.NET MVC pour utiliser la TagBuilder classe .

Toutefois, la classe se trouve toujours dans l’espace de System.Web.Mvc noms. Pour utiliser la TagBuilder classe (par exemple, dans un ASP.NET d’assistance Razor personnalisé), vous devez référencer l’espace de noms (par exemple, en ajoutant @using System.Web.Mvc à votre code).

Modification : La syntaxe de validation des demandes a été modifiée ; Classe « Validation » supprimée

Dans la version bêta 3, pour désactiver la validation d’un champ ou d’un ensemble de champs individuels, vous pouvez appeler la Validation.Exclude méthode, en passant le nom ou les noms des champs à exclure de la validation. Une nouvelle syntaxe est disponible dans la version bêta 3 pour contourner la validation. La Validation méthode utilisée dans bêta 3 a été supprimée.

Notes

Si vous ne désactivez pas la validation des demandes, si les utilisateurs essaient de charger le balisage HTML (par exemple, à l’aide d’un éditeur de texte enrichi sur une page), le site web signale une erreur telle qu’une valeur Request.Form potentiellement dangereuse a été détectée à partir du client et l’entrée utilisateur n’est pas acceptée. Si vous désactivez la validation des demandes, vous devez case activée manuellement l’entrée utilisateur pour vous assurer qu’elle ne contient pas de balisage ou de script potentiellement dangereux en empêchant le script intersite (XSS) dans ASP.NET Core.

Pour désactiver la validation automatique des demandes, appelez la Request.Unvalidated méthode, en lui transmettant le nom du champ ou de l’autre objet post pour lequel vous souhaitez contourner la validation de la demande. Vous pouvez utiliser cette méthode pour contourner la validation pour tous les éléments des Formcollections , QueryString, Cookieset ServerVariables . Les exemples suivants montrent comment utiliser la Unvalidated méthode :

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

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

Problèmes connus pour pages Web ASP.NET avec la syntaxe Razor

Problème : comportement inattendu lors de l’utilisation d’une table utilisateur personnalisée pour l’appartenance

Pour initialiser le fournisseur d’appartenance pour un site web Razor ASP.NET, vous appelez la WebSecurity.InitializeDatabaseConnection méthode . (Dans WebMatrix, le modèle site de démarrage inclut un appel à cette méthode dans le fichier _AppStart.cshtml .) Si le autoCreateTables paramètre de cette méthode a la valeur true (par défaut, il est défini sur true dans le modèle site de démarrage), et si un nom de table non reconnu est passé à la méthode (deuxième paramètre), la méthode ne génère pas d’erreur. Au lieu de cela, il crée automatiquement la table.

Cela peut être un problème si vous envisagez d’utiliser une table utilisateur personnalisée pour l’appartenance, mais que vous transmettez le nom de table incorrect à la WebSecurity.InitializeDatabaseConnection méthode. Étant donné que la méthode ne génère pas d’erreur par défaut si la table que vous spécifiez n’existe pas et qu’elle crée une nouvelle table, l’application peut sembler fonctionner. Toutefois, le code d’application qui s’appuie sur votre table utilisateur personnalisée (et sur les champs qu’elle contient) peut éventuellement échouer avec des erreurs inattendues.

Solution de contournement
Assurez-vous que le nom transmis dans la méthode correspond à la InitializeDatabaseConnection table de profil utilisateur dans la base de données d’appartenance, ou vérifiez que le paramètre a la autoCreateTables valeur false.

Problème : erreur « Échec de la génération d’un instance utilisateur de SQL Server »

Si une application WebMatrix utilise SQL Server Express et exécute IIS 7.5 sur Windows 7 ou Windows Server 2008 R2, vous pouvez voir une erreur indiquant que SQL Server ne peut pas récupérer le chemin d’application local de l’utilisateur au moment de l’exécution.

Contournement Assurez-vous que le compte Windows sous lequel l’application s’exécute (généralement SERVICE RÉSEAU) dispose d’autorisations de lecture/écriture pour les dossiers racines de l’application et pour les sous-dossiers tels que App_Data. Pour plus d’informations, consultez Problèmes liés à l’instanciation des utilisateurs SQL Server Express et ASP.net projets d’application web.

Problème : Dans Visual Studio, les espaces de noms pour les assemblys personnalisés (DLL) ne sont pas importés automatiquement

Si vous utilisez des assemblys personnalisés dans un projet dans Visual Studio, les espaces de noms déclarés dans ces assemblys ne sont pas importés automatiquement au moment de la conception. Par conséquent, les références à des types personnalisés peuvent ne pas être reconnues au moment de la conception et être marquées comme non reconnues dans Visual Studio (à l’aide d’un « squiggle »). Ce problème se produit uniquement au moment de la conception dans Visual Studio ; l’application elle-même s’exécute correctement.

Solution de contournement
Incluez une using instruction (imports en Visual Basic) qui fait référence aux entités qui ne sont pas reconnues au moment du design.

Problème : Visual Studio IntelliSense et les modèles de projet disponibles uniquement dans ASP.NET MVC version 3

L’installation de pages Web ASP.NET n’installe pas non plus les outils pour Visual Studio tels qu’IntelliSense et les modèles de projet pour pages Web ASP.NET applications.

Contournement Pour utiliser IntelliSense et les modèles de projet pour les applications pages Web ASP.NET dans Visual Studio, installez ASP.NET MVC 3 RC via le programme d’installation de la plateforme web ou le programme d’installation autonome.

Problème : erreur «< la classe d’assistance> est introuvable »

Après la mise à niveau vers la version bêta 3, vous pouvez voir une erreur indiquant qu’une classe d’assistance (par exemple, la Facebook classe) est introuvable. À compter de la version bêta 2 et de la version bêta 3, les assistances ont été déplacées vers des packages que vous devez installer explicitement. Les sites existants ne sont pas mis à niveau pour inclure ces packages ; cela inclut les sites dans les dossiers \Mes documents\IISExpress ou \Mes documents\Mes sites web . En particulier, vous verrez cette erreur si vous utilisez le site par défaut dans Mes sites (WebSite1), qui inclut une référence à l’assistance Twitter .

Solution de contournement
Commentez les appels aux personnes d’assistance du site, exécutez la page _Admin et installez le ou les packages qui incluent les assistances que vous souhaitez utiliser. Une fois que vous avez installé le package, vous pouvez annuler les marques de commentaire des lignes qui référencent les helpers.

Problème : Le déploiement des assemblys Beta 3 ASP.NET Razor dans le dossier Bin peut ne pas fonctionner sur les sites d’hébergement

Si vous déployez un site web pages Web ASP.NET sur un site d’hébergement et si vous déployez les assemblys ASP.NET Razor Beta 3 dans le dossier Bin du site, vous pouvez rencontrer des erreurs, notamment les suivantes :

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

Cela peut se produire si le fournisseur d’hébergement a installé les assemblys pages Web ASP.NET bêta 1 dans le cache global application cache (GAC) du serveur. Les assemblys du GAC sont prioritaires sur les assemblys installés localement dans le dossier Bin .

Contournement Contactez votre fournisseur d’hébergement pour vérifier que les erreurs que vous voyez sont dues à un conflit entre les versions des assemblys du fournisseur et les vôtres. Si c’est le cas, demandez au fournisseur d’hébergement de mettre à jour les assemblys dans le GAC du serveur.

Problème : Lecture de flux ou d’autres données externes via un serveur proxy

Si le serveur exécutant le site se trouve derrière un serveur proxy, vous devrez peut-être configurer les informations de proxy dans le fichier Web.config afin de pouvoir lire les informations provenant de l’extérieur de votre site. Par exemple, si vous utilisez l’assistance ReCaptcha , celui-ci communique avec le service reCAPTCHA, mais peut être bloqué par votre serveur proxy. De même, les flux utilisés dans pages Web ASP.NET, tels que le flux utilisé par le gestionnaire de package, peuvent nécessiter une configuration de proxy.

Si vous rencontrez des problèmes lors de l’utilisation d’un service externe ou du flux de package, placez les éléments suivants dans le fichier Web.config racine de votre application :

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

Pour plus d’informations sur la configuration d’un serveur proxy, consultez <Élément proxy> (paramètres réseau) sur le site Web MSDN.

Problème : erreur « impossible de charger Microsoft.Web.Infrastructure.dll »

Si vous avez précédemment installé la version bêta 1 de pages Web ASP.NET avec la syntaxe Razor, puis que vous installez la version bêta 3, tous les assemblys appropriés sont installés dans le GAC, à l’exception deMicrosoft.Web.Infrastructure.dll. Par conséquent, lorsque vous exécutez ASP.NET pages Razor, vous voyez une erreur indiquant que Microsoft.Web.Infrastructure.dlln’a pas pu être chargé.

Ce problème ne se produit pas si vous avez chargé la version bêta 3 sur un ordinateur propre.

Solution de contournement
Dans Panneau de configuration, désinstallez pages Web ASP.NET. Réinstallez ensuite la version bêta 3.

Problème : la désinstallation du .NET Framework version 4 désactive pages Web ASP.NET avec la syntaxe Razor

Si vous désinstallez le .NET Framework version 4, puis que vous le réinstallez, pages Web ASP.NET avec la syntaxe Razor est désactivé. Les pages avec l’extension .cshtml ne s’exécutent pas correctement. pages Web ASP.NET inscrit un assembly dans le fichier Web.config racine de l’ordinateur, et la suppression du .NET Framework supprime ce fichier. La réinstallation du .NET Framework installe une nouvelle version du fichier de configuration, mais n’ajoute pas la référence pour l’assembly pages Web ASP.NET.

Contournement Après avoir réinstallé le .NET Framework, réinstallez pages Web ASP.NET avec la syntaxe Razor. Cela ajoute l’élément suivant au fichier Web.config à la racine de l’ordinateur, qui se trouve généralement à l’emplacement suivant :

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (32-bit)

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config (64-bit)

<compilation>
  <assemblies>
    <add assembly="Microsoft.WebPages.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    <-- Additional assemblies here. -->

  </assemblies>
</compilation>

Problème : les applications précédemment déployées avec des assemblys ASP.NET dans le dossier Bin rencontrent des erreurs

Pendant le déploiement, des copies des assemblys pages Web ASP.NET (par exemple, Microsoft.WebPages.dll) dans le dossier Bin du site web sur le serveur. (Cela peut s’être produit automatiquement pendant le déploiement ou parce que le développeur a explicitement copié les assemblys.) Toutefois, lorsque la version bêta 3 est installée, des erreurs se produisent, telles que des erreurs que certains types sont introuvables. Cela se produit parce qu’un certain nombre de types pages Web ASP.NET ont été déplacés dans différents espaces de noms pour la version bêta 3.

Solution de contournement
Effacez le dossier Bin de l’application déployée, copiez les nouveaux assemblys dans le dossier (ou redéployez l’application), puis redémarrez l’application.

Problème : les URL sans extension ne trouvent pas les fichiers .cshtml/.vbhtml sur IIS 7 ou IIS 7.5

Sur IIS 7 ou IIS 7.5, les requêtes avec une URL comme celle-ci ne peuvent pas trouver les pages qui ont l’extension .cshtml ou .vbhtml :

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

Le problème se produit car la réécriture d’URL n’est pas activée par défaut pour IIS 7 ou IIS 7.5. Le scénario le plus semblable est que vous ne voyez pas le problème lors du test local à l’aide de IIS Express, mais que vous le rencontrez lorsque vous déployez votre site web sur un site web d’hébergement.

Solution de contournement

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

Problème : Utilisation d’un projet d’application web ou ASP.NET MVC et ASP.NET pages web dans la même application

Si vous utilisiez pages Web ASP.NET dans un projet d’application web ou ASP.NET application MVC, vous pouvez voir une erreur indiquant que WebPageHttpApplication est introuvable.

Solution de contournement
Si vous obtenez cette erreur, modifiez la classe de base à partir de laquelle l’application dérive. Dans le fichier Global.asax , modifiez la ligne suivante :

public class MvcApplication :  WebPageHttpApplication { ... }

Par ceci :

public class MvcApplication :  HttpApplication { ... }

Cela inverse en effet une modification introduite pour la version bêta 1 de pages Web ASP.NET avec la syntaxe Razor.

Problème : déploiement d’une application sur un ordinateur sur lequel SQL Server Compact n’est pas installé

Les applications qui incluent des bases de données SQL Server Compact peuvent s’exécuter sur un ordinateur sur lequel SQL Server Compact n’est pas installé. Microsoft WebMatrix Beta 3 copie automatiquement ces fichiers binaires pour vous et effectue les transformations de fichiersWeb.config appropriées.

Contournement Si vous devez copier ces fichiers et modifier manuellement le fichierWeb.config , procédez comme suit :

  1. Copiez les assemblys du moteur de base de données dans le dossier Bin (et sous-dossiers) de l’application sur l’ordinateur cible :

    • Copier C :\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dlldans\Bin
    • Copiez C :\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to\Bin\x86
    • Copiez C :\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to\Bin\amd64
  2. Dans le dossier racine du site web, créez ou ouvrez un fichier Web.config . (Dans WebMatrix Beta 3, ce type de fichier est disponible si vous cliquez sur Tous dans la boîte de dialogue Choisir un type de fichier .)

  3. Ajoutez l’élément suivant en tant qu’enfant de l’élément <de configuration> (pas à l’intérieur de l’élément <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ème : Les assistances de base de données et WebGrid ne fonctionnent pas dans un niveau de confiance moyen dans Visual Basic

Si vous utilisez Visual Basic (création de fichiers .vbhtml ), les Database aides et WebGrid ne fonctionnent pas si l’application est définie pour utiliser un niveau de confiance moyen.

Solution de contournement
Définissez temporairement l’application pour qu’elle utilise la confiance totale.

SQL Server Compact

Problème : la propriété « Chiffrer » n’est pas reconnue

SQL Server Compact 4.0 ne reconnaît pas la Encrypt propriété de la SqlCeConnection classe . Vous ne devez pas utiliser cette propriété pour chiffrer les fichiers de base de données. La Encrypt propriété a été déconseillée dans SQL Server Compact version 3.5 et a été conservée uniquement à des fins de compatibilité descendante.

Solution de contournement
Utilisez la Encryption Mode propriété de la SqlCeConnection classe pour chiffrer SQL Server Compact fichiers de base de données 4.0. L’exemple suivant montre comment créer une base de données chiffrée SQL Server Compact 4.0 à l’aide de la Encryption Mode propriété :

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

Pour modifier le mode de chiffrement d’une base de données SQL Server Compact 4.0 existante, procédez comme suit :

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

Pour chiffrer une base de données non chiffrée SQL Server Compact 4.0, procédez comme suit :

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

Problème : les bibliothèques runtime Microsoft Visual C++ 2008 sont requises

Les DLL natives de SQL Server Compact 4.0 nécessitent les bibliothèques runtime Microsoft Visual C++ 2008 (x86, IA64 et x64), Service Pack 1.

Solution de contournement
Installez .NET Framework 3.5 SP1. Cela installe également les bibliothèques runtime Visual C++ 2008 SP1. Vous pouvez télécharger les bibliothèques à partir de l’emplacement suivant :

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

Notes

Notez que l’installation de .NET Framework 2.0, 3.0 ou 4 n’installe pas les bibliothèques runtime Visual C++ 2008 SP1.

Problème : si SQL Server Compact est installé avant l’installation de .NET Framework sur l’ordinateur, son nom invariant de fournisseur n’est pas inscrit dans le fichier de machine.config .NET Framework

SQL Server Compact peut être installé sur un ordinateur sur lequel .NET Framework n’est pas installé, car SQL Server Compact nécessite le .NET Framework. Si ni .NET Framework version 3.5 ni 4 n’est installé avant d’installer SQL Server Compact, le programme d’installation SQL Server Compact n’inscrit pas son nom invariant de fournisseur dans le fichier machine.config. Toute application qui s’appuie sur l’entrée SQL Server Compact dans le fichier machine.config échoue. L’entrée d’inscription de nom invariant dans machine.config ressemble à l’exemple suivant :

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

Solution de contournement
Désinstallez SQL Server Compact 4.0 CTP1. Téléchargez et installez les versions complètes du .NET Framework à partir de l’emplacement suivant :

Microsoft .NET Framework 3.5 Service Pack 1 (package complet)
Version de Microsoft .NET Framework 4.0 (package complet)

Réinstallez ensuite SQL Server Compact 4.0 SP1.

Installation d'applications

Problème : l’installation d’une application peut prendre beaucoup de temps si le dossier Mes documents de l’utilisateur est redirigé vers un partage réseau

Solution de contournement
Aucun. L’installation de l’application peut prendre un certain temps, mais s’installe correctement.

Publication d’applications

Problème : Le site peut ne pas fonctionner après la publication si le champ « URL de destination » n’est pas précédé de http:// ou https://

Dans la boîte de dialogue Paramètres de publication, si l’URL de destination ne commence pas par http:// ou https://, le site risque de ne pas fonctionner après le déploiement.

Solution de contournement
Assurez-vous qu’avant de publier un site, l’URL de destination dans la boîte de dialogue Paramètres de publication commence par http:// ou https://.

Problème : la publication d’une base de données MySQL échoue avec l’erreur « Échec de la publication de la base de données. Cela peut se produire si la base de données distante ne peut pas exécuter le script. »

L’erreur peut se produire pour plusieurs raisons. L’une des raisons pour lesquelles vous pouvez voir cette erreur est si le script de base de données contient un seul guillemet (') et que le jeu de caractères par défaut de la base de données MySQL de destination n’est pas en UTF-8.

Solution de contournement
Définissez le jeu de caractères par défaut pour la base de données MySQL distante sur UTF-8.

Autres problèmes

Problème : La recherche/le filtre ne fonctionne pas dans les rapports pour le groupe par : type de problème

Lorsque vous exécutez un rapport pour un site, si vous entrez du texte dans la zone Filtrer par URL et cliquez sur Rechercher, rien ne se produit. En effet, ce contrôle n’est pas fonctionnel alors que l’état Group By du rapport est défini sur Type de problème, qui est la valeur par défaut.

Contournement Dans l’onglet Regrouper par du ruban, cliquez sur URL pour regrouper les entrées en fonction de leur URL source. La zone de texte et le bouton permettant de filtrer les entrées sont fonctionnels dans cet état.

Problème : les applications WCF ne peuvent pas s’exécuter avec IIS Express

La navigation vers une application WCF génère une erreur semblable à celle-ci :

Impossible de charger le fichier ou l’assembly « Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35 » ou l’une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

Cela se produit parce que IIS Express version bêta ne prend pas en charge WCF par défaut.

Contournement Utilisez l’une des solutions de contournement suivantes (la solution de contournement n°2 nécessite Microsoft Windows Vista ou version ultérieure) :

  1. Copiez les assemblysMicrosoft.Web.dll et Microsoft.Web.Administration.dll de l’emplacement d’installation de WebMatrix vers le répertoire bin de l’application WCF. Par défaut, WebMatrix est installé dans le sous-dossier Microsoft WebMatrix sous le dossier Program Files du système.

  2. Sur Microsoft Windows Vista ou version ultérieure, créez un lien symbolique vers les assemblys dans le répertoire bin à l’aide des commandes suivantes. (Cette approche présente l’avantage de ne pas créer de copie des assemblys.)

    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. Installez les deux assemblys dans le GAC. À partir d’une invite avec élévation de privilèges, exécutez les commandes suivantes :

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

Problème : WebMatrix Beta 3 ne peut pas effectuer certaines tâches qui nécessitent une élévation

WebMatrix Beta 3 ne peut pas effectuer certaines tâches qui nécessitent une élévation, telles que l’installation de composants supplémentaires dans les situations suivantes :

  • Sur Windows Vista ou Windows 7, vous êtes connecté avec un compte qui ne dispose pas de privilèges d’administrateur et le contrôle de compte d’utilisateur (UAC) est désactivé.
  • Vous utilisez Microsoft Windows XP ou Microsoft Windows Server 2003.

Solution de contournement
La plupart des tâches dans WebMatrix Beta 3 ne nécessitent pas d’autorisation administrative. Pour ceux qui le font, vous pouvez effectuer l’opération en tant qu’administrateur, ou procédez comme suit :

  • Sur Windows Vista ou Windows 7, activez UAC.
  • Sous Windows XP, ajoutez l’utilisateur au groupe de sécurité Administrateurs.

L’option Site à partir de la galerie web est désactivée si web Platform Installer 3.0 n’est pas installé.

Solution de contournement
Installez le Microsoft Web Platform Installer 3.0.

Problème : sur Windows Server 2003, IIS Express ne démarre pas pour un utilisateur non administratif

Sur Windows Server 2003, lorsque vous lancez une page ou démarrez IIS Express, IIS Express ne démarre pas. Pour les pages Web, une erreur s’affiche indiquant que l’application a été démarrée par un utilisateur non administratif.

Solution de contournement
Démarrez WebMatrix Beta 3 en tant qu’utilisateur administratif.

Problème : Google Chrome n’est pas disponible en tant qu’option Exécuter

Google Chrome n’est pas affiché dans la liste des navigateurs sous Exécuter sous l’onglet Accueil .

Solution de contournement
Certaines versions de Google Chrome ne s’inscrivent pas correctement avec la fonctionnalité Programmes par défaut dans Windows. Pour contourner ce problème, démarrez Google Chrome, cliquez sur le menu Personnaliser et contrôler Google Chrome , cliquez sur Options, puis sur Rendre Google Chrome mon navigateur par défaut.

Problème : la boîte de dialogue « Clé étrangère » n’autorise pas l’entrée d’une clé primaire

La boîte de dialogue Clé étrangère ne vous permet pas d’entrer le nom de la clé primaire à partir de la table de clé primaire.

Solution de contournement
Ceci est intentionnel. Vous n’avez pas besoin d’entrer le nom de la clé primaire à partir de la table de clés primaires.

Problème : le bouton « Relations » est désactivé

Le bouton Relations sous l’onglet Table de l’espace de travail Bases de données est désactivé pour SQL Server Compact bases de données.

Solution de contournement
Aucun. SQL Server Compact ne prend pas en charge les relations entre les tables.

Problème : Les requêtes SQL paramétrables lèvent des exceptions

Dans SQL Server Compact 4.0, si vous ne spécifiez pas de type de données tel que SqlDbType ou DbType pour les paramètres dans les requêtes paramétrables, une exception est levée lors de l’exécution de la requête.

Solution de contournement
Définissez explicitement le type de données pour des paramètres tels que SqlDbType ou DbType. Cela est essentiel dans le cas des types de données BLOB (image et ntext). Utilisez un code semblable à ce qui suit :

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

Pour plus d'informations

Pour plus d’informations sur WebMatrix Beta 3, consultez les sites web suivants :