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 laWebPage
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 nouvelleHtml.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. UtilisezHttpContext.Current
à la place. (LaWebPageContext.HttpContext
propriété a simplement encapsulé ceci.)
Modification : l’assistant « Facebook » a été déplacé vers un nouveau package
L’assistance
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 laTagBuilder
classe .Toutefois, la classe se trouve toujours dans l’espace de
System.Web.Mvc
noms. Pour utiliser laTagBuilder
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. LaValidation
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 desForm
collections ,QueryString
,Cookies
etServerVariables
. Les exemples suivants montrent comment utiliser laUnvalidated
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 leautoCreateTables
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 à laInitializeDatabaseConnection
table de profil utilisateur dans la base de données d’appartenance, ou vérifiez que le paramètre a laautoCreateTables
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 uneusing
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
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
- Si vous contrôlez l’ordinateur serveur, installez sur l’ordinateur serveur la mise à jour décrite dans Une mise à jour est disponible qui permet à certains gestionnaires IIS 7.0 ou IIS 7.5 de gérer les demandes dont les URL ne se terminent pas par un point.
- Si vous n’avez pas de contrôle sur l’ordinateur serveur (par exemple, vous déployez sur un site web d’hébergement), ajoutez les éléments suivants au fichier Web.config du site web :
<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 :
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
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 .)
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 etWebGrid
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 laSqlCeConnection
classe . Vous ne devez pas utiliser cette propriété pour chiffrer les fichiers de base de données. LaEncrypt
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 laEncryption Mode
propriété de laSqlCeConnection
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 laEncryption 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://
ouhttps://
, 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 parhttp://
ouhttps://
.
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) :
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.
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"
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.
Problème : « Site à partir de la galerie web » est désactivé
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
ouDbType
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 queSqlDbType
ouDbType
. Cela est essentiel dans le cas des types de données BLOB (image
etntext
). 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 :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour