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 frameworks 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 telles que DotNetNuke, Umbraco, WordPress ou Nommée. WebMatrix Beta utilise le même serveur web puissant, le moteur de base de données et l’environnement de frameworks qui exécutera votre site web sur Internet, ce qui rend la transition du développement à la production fluide et transparente.

Installation

Remarque

WebMatrix n’est plus recommandé comme environnement de développement intégré pour pages Web ASP.NET. Utilisez Visual Studio ou Visual Studio Code.

Si vous rencontrez des problèmes lors de l’installation, reportez-vous à La résolution des problèmes liés à Microsoft Web Platform Installer.

Instructions pour la publication d’applications

Consultez les instructions pas à pas pour la publication d’applications

Nouvelles fonctionnalités, modifications et problèmes connus

WebMatrix Beta 3 Installation

Problème : WebMatrix Beta 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 WebMatrix Beta vous permet d’essayer d’installer sur une plateforme qui ne fait pas partie du jeu de configuration pris en charge. En particulier, Windows Vista sans la mise à jour SP1 vous permet de commencer l’installation de WebMatrix Beta, mais le composant .NET Framework 4 échoue et bloque votre installation.

Solution de contournement
Installez-le sur une plateforme prise en charge, notamment :

  • 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é. 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 les programmes et fonctionnalités dans windows Panneau de configuration 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

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

La nouvelle Html.Raw méthode vous permet d’afficher le balisage HTML en tant que balisage au lieu de rendre la sortie encodée. (Par défaut, ASP.NET encode les chaînes Razor 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. Cet assistance a été utilisé pour encoder des caractères non sécurisés dans des URL. Il n’est plus nécessaire, 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 : Syntaxe pour les helpers déclaratifs « @helper » modifiés

Dans la version bêta 3, ASP.NET modifie la façon dont il analyse les helpers créés à l’aide de la @helper syntaxe. En substance, la @helper syntaxe est désormais analysée en tant que bloc de code au lieu d’un bloc de balisage qui peut inclure du code. Par conséquent, le code à l’intérieur de l’assistance n’a pas besoin d’être placé entre @{ } blocs. À l’inverse, le balisage à l’intérieur de l’assistance doit être explicitement inclus dans les é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, cet 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 assistances 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 se trouver 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é est simplement encapsulée.)

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

L’assistance Facebook a été déplacée vers la bibliothèque Facebook.Helper , qui inclut l’assistance Facebook et les fonctionnalités supplémentaires. Vous devez installer cette bibliothèque en tant que package distinct, comme décrit dans « Installation d’Helpers with Gestionnaire de package » dans le didacticiel Getting Started with ASP.NET Pages.

Modification : Les types d’appartenance, de rôle et de sécurité se déplacent vers un nouvel assembly

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

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Modification : classe « TagBuilder » 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, il s’agissait d’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 System.Web.Mvc de noms. Pour utiliser la TagBuilder classe (par exemple, dans une ASP.NET d’assistance Razor personnalisée), vous devez référencer l’espace de noms (par exemple, en ajoutant @using System.Web.Mvc à votre code).

Modification : Syntaxe de validation de la demande modifiée ; Classe « Validation » supprimée

Dans la version bêta 3, pour désactiver la validation d’un champ individuel ou d’un ensemble de champs, 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 beta 3 a été supprimée.

Remarque

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 vérifier manuellement l’entrée de l’utilisateur pour vous assurer qu’elle ne contient pas de balisage ou de script potentiellement dangereux en empêchant le script intersites (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 d’un autre objet post que vous souhaitez ignorer la validation de la demande. Vous pouvez utiliser cette méthode pour contourner la validation pour tous les éléments dans les collections, Cookieset ServerVariables les FormQueryStringéléments. 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’appartenances pour un site web Razor ASP.NET, vous appelez la WebSecurity.InitializeDatabaseConnection méthode. (Dans WebMatrix, le modèle de site starter inclut un appel à cette méthode dans le fichier _AppStart.cshtml .) Si le paramètre de cette méthode a la autoCreateTables valeur true (par défaut, il est défini sur true dans le modèle de site de démarrage) et si un nom de table non reconnu est passé à la méthode (le deuxième paramètre), la méthode ne lève pas d’erreur. Au lieu de cela, elle 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 transmettez le nom de table incorrect à la WebSecurity.InitializeDatabaseConnection méthode. Étant donné que la méthode ne déclenche pas par défaut une erreur si la table que vous spécifiez n’existe pas, et parce qu’elle crée plutôt une 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’il contient) peut éventuellement échouer avec des erreurs inattendues.

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

Problème : Erreur « Échec de la génération d’une 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’accès de l’application locale de l’utilisateur au moment de l’exécution.

Solution de contournement Assurez-vous que le compte Windows sous lequel l’application s’exécute sous (généralement NETWORK SERVICE) dispose d’autorisations de lecture/écriture pour les dossiers racines de l’application et pour les sous-dossiers tels que App_Data. Des informations plus détaillées sont disponibles sur Les problèmes liés à l’instanciation des utilisateurs SQL Server Express et à ASP.net projets d’applications 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 automatiquement importés au moment du design. Par conséquent, les références aux types personnalisés peuvent ne pas être reconnues au moment du design et sont marquées comme non reconnues dans Visual Studio (à l’aide d’un « quiggle »). Ce problème se produit uniquement au moment du design dans Visual Studio ; l’application elle-même s’exécute correctement.

Solution de contournement
Incluez une using instruction (imports en Visual Basic) qui référence les 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 d’outils pour Visual Studio, tels que IntelliSense et les modèles de projet pour les applications pages Web ASP.NET.

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

Problème : erreur «< impossible de trouver la classe helper> »

Une fois la mise à niveau vers beta 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 en continuant dans bêta 3, les helpers ont été déplacés 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 helpers du site, exécutez la page _Admin et installez le package ou les packages qui incluent les helpers 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 assistances.

Problème : Le déploiement d’assemblys Razor bêta 3 ASP.NET 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 que vous déployez les assemblys Razor Beta 3 ASP.NET 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 Beta 1 dans le global application cache (GAC) du serveur. Les assemblys du GAC sont prioritaires sur les assemblys installés localement dans le dossier Bin .

Contactez votre fournisseur d’hébergement pour vérifier que les erreurs que vous voyez sont dues à un conflit entre les versions du fournisseur des assemblys et le vôtre. 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 des informations proxy dans le fichier Web.config pour pouvoir lire les informations provenant de l’extérieur de votre site. Par exemple, si vous utilisez l’assistance ReCaptcha , l’assistance communique avec le service reCAPTCHA, mais peut être bloquée 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 proxy.

Si vous rencontrez des problèmes lors de l’utilisation d’un service externe ou de l’utilisation 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’élément proxy> (Paramètres réseau) sur le site web MSDN.

Problème : erreur « Microsoft.Web.Infrastructure.dll ne peut pas être chargée »

Si vous avez déjà installé la version bêta 1 de pages Web ASP.NET avec la syntaxe Razor, puis installez la version bêta 3, tous les assemblys appropriés sont installés dans le GAC, sauf Microsoft.Web.Infrastructure.dll. Par conséquent, lorsque vous exécutez ASP.NET pages Razor, vous voyez une erreur indiquant que Microsoft.Web.Infrastructure.dll n’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 .NET Framework version 4, puis réinstallez-le, pages Web ASP.NET avec la syntaxe Razor est désactivée. Les pages avec l’extension .cshtml ne s’exécutent pas correctement. pages Web ASP.NET inscrit un assembly dans la racine de l’ordinateurLe fichier Web.config 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.

Solution de 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 se produire automatiquement pendant le déploiement ou parce que le développeur a copié explicitement les assemblys.) Toutefois, lorsque la version bêta 3 est installée, des erreurs se produisent, telles que des erreurs que certains types ne peuvent pas trouver. 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 recherchent pas de 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 sont pas en mesure de trouver des 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 localement à l’aide d’IIS Express, mais que vous l’expériencez 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 du 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 où SQL Server Compact n’est pas installé. Microsoft WebMatrix Beta 3 copie automatiquement ces fichiers binaires pour vous et effectue les transformations de fichier Web.config appropriées.

Solution de contournement Si vous devez copier ces fichiers et apporter manuellement les modifications apportées au fichier Web.config , procédez comme suit :

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

    • Copier C :\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll vers \Bin
    • Copier C :\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86
    • Copier 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 Tout 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 helpers Database et WebGrid ne fonctionnent pas dans La confiance moyenne en Visual Basic

Si vous utilisez Visual Basic (création de fichiers .vbhtml ), les Database WebGrid helpers ne fonctionnent pas si l’application est définie pour utiliser l’approbation moyenne.

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

SQL Server Compact

Problème : la propriété « Encrypt » 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 la version sql Server Compact 3.5 et a été conservée uniquement pour la compatibilité descendante.

Solution de contournement
Utilisez la Encryption Mode propriété de la SqlCeConnection classe pour chiffrer les fichiers de base de données SQL Server Compact 4.0. L’exemple suivant montre comment créer une base de données SQL Server Compact 4.0 chiffrée à 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 SQL Server Compact 4.0 non chiffrée, 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 ont besoin des 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 Redistributable Package ATL Security Update

Remarque

Notez que l’installation de .NET Framework 2.0, 3.0 ou 4 n’installe pas visual C++ 2008 Runtime Libraries SP1.

Problème : si SQL Server Compact est installé avant d’installer .NET Framework sur l’ordinateur, son nom invariant du fournisseur n’est pas inscrit dans le fichier 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 .NET Framework version 3.5 et 4 n’est pas installé avant d’installer SQL Server Compact, le programme d’installation de 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
Aucune. L’application peut prendre un certain temps pour l’installer, mais l’installera 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 de https://

Dans la boîte de dialogue Paramètres de publication, si l’URL de destination ne commence http:// pas ou https://si le site peut 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. Une raison pour laquelle vous pouvez voir cette erreur est si le script de base de données contient un guillemet unique (') et que le jeu de caractères par défaut de la base de données MySQL de destination n’est pas défini sur 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 grouper 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. Cela est dû au fait que 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.

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

Problème : les applications WCF ne parviennent 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 la version bêta d’IIS Express ne prend pas en charge WCF par défaut.

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

  1. Copiez les assemblys Microsoft.Web.dll et Microsoft.Web.Administration.dll à partir 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 du répertoire bin à l’aide des commandes suivantes. (Cette approche présente l’avantage qu’elle ne crée pas 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 nécessitant une élévation

WebMatrix Beta 3 ne peut pas effectuer certaines tâches nécessitant 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 n’a 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 d’administration. Pour ceux qui le font, vous pouvez effectuer l’opération en tant qu’administrateur ou suivre les étapes suivantes :

  • Sur Windows Vista ou Windows 7, activez L’UAC.
  • Sur 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 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 Créer 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és primaires.

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 Tableau de l’espace de travail Bases de données est désactivé pour les bases de données SQL Server Compact.

Solution de contournement
Aucune. 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 les paramètres tels que SqlDbType ou DbType. Cela est essentiel dans le cas des types de données BLOB (image et ntext). Utilisez du code comme 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 :