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 laWebPage
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 nouvelleHtml.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. UtilisezHttpContext.Current
à la place. (LaWebPageContext.HttpContext
propriété est simplement encapsulée.)
Modification : l’assistance « Facebook » a été déplacée vers un nouveau package
L’assistance
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 laTagBuilder
classe.Toutefois, la classe se trouve toujours dans l’espace
System.Web.Mvc
de noms. Pour utiliser laTagBuilder
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. LaValidation
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,Cookies
etServerVariables
lesForm
QueryString
éléments. 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’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 laautoCreateTables
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 laInitializeDatabaseConnection
méthode correspond à la table de profil utilisateur dans la base de données d’appartenance, ou vérifiez que leautoCreateTables
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 uneusing
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
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
- Si vous contrôlez l’ordinateur serveur, sur l’ordinateur serveur, installez la mise à jour décrite dans Une mise à jour qui permet à certains gestionnaires IIS 7.0 ou IIS 7.5 de gérer les requêtes dont les URL ne se terminent pas par une période.
- Si vous n’avez pas de contrôle sur l’ordinateur serveur (par exemple, vous effectuez un déploiement sur un site web d’hébergement), ajoutez ce qui suit au fichier Web.config du site web :
<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 :
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
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.)
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 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 la version sql Server Compact 3.5 et a été conservée uniquement pour la compatibilité descendante.Solution de contournement
Utilisez laEncryption Mode
propriété de laSqlCeConnection
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 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 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 ouhttps://
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 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. 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) :
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.
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"
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.
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 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
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 les paramètres tels queSqlDbType
ouDbType
. Cela est essentiel dans le cas des types de données BLOB (image
etntext
). 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 :