File Leggimi di WebMatrix e pagine Web ASP.NET (Razor) Beta 3
File Leggimi di WebMatrix e pagine Web ASP.NET (Razor) Beta 3
9 novembre 2010
Microsoft WebMatrix Beta è uno stack di sviluppo Web gratuito che viene installato in pochi minuti. Integra un server Web con framework di database e programmazione per creare un'unica esperienza integrata. È possibile usare WebMatrix Beta per semplificare il modo in cui scrivere codice, testare e pubblicare il proprio sito Web ASP.NET o PHP oppure è possibile usare WebMatrix Beta per avviare un nuovo sito Web usando app open source popolari come DotNetNuke, Umbraco, WordPress o Parimenti. WebMatrix Beta usa lo stesso potente server Web, motore di database e framework che eseguirà il sito Web su Internet, che rende la transizione dallo sviluppo alla produzione senza problemi.
Nota
WebMatrix non è più consigliato come ambiente di sviluppo integrato per Pagine Web ASP.NET. Usare Visual Studio o Visual Studio Code.
In caso di problemi durante l'installazione, vedere Risoluzione dei problemi relativi alla Installazione guidata piattaforma Web Microsoft.
Vedere Istruzioni dettagliate per la pubblicazione di applicazioni
Problema: WebMatrix Beta 3 è disponibile solo nelle piattaforme che supportano Microsoft .NET Framework 4
.NET Framework versione 4 è necessario per WebMatrix Beta. In alcuni casi, il programma di installazione WebMatrix Beta consente di provare a eseguire l'installazione in una piattaforma che non fa parte del set di configurazione supportato. In particolare, Windows Vista senza l'aggiornamento di SP1 consentirà di avviare l'installazione di WebMatrix Beta, ma il componente .NET Framework 4 avrà esito negativo e bloccherà l'installazione.
Soluzione alternativa
Eseguire l'installazione in una piattaforma supportata, che include:
- Windows 7
- Windows Server 2008
- Windows Server 2008 R2
- Windows Vista SP1 o versione successiva
- Windows XP SP3
- Windows Server 2003 SP2
Problema: impossibile installare WebMatrix Beta 3 se Microsoft Visual Studio 2008 è installato senza Microsoft Visual Studio 2008 SP1
Soluzione alternativa
Installare Microsoft Visual Studio 2008 Service Pack 1 dall'Area download Microsoft.
Gli assembly gestiti per SQL Server Compact 4.0 non vengono inseriti nella Global Assembly Cache (GAC) quando si installa SQL Server Compact 4.0 in un computer a 64 bit e nel computer è installato solo il profilo client .NET Framework 3.5 SP1. Gli assembly gestiti non installati nella GAC sono:
- System.Data.SqlServerCe.dll (provider di ADO.NET)
- System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework)
Soluzione alternativa
Disinstallare SQL Server Compact 4.0. Scaricare e installare la versione completa di .NET Framework 3.5 SP1 dal percorso seguente:Microsoft .NET Framework 3.5 Service Pack 1 (pacchetto completo)
Reinstallare quindi SQL Server Compact 4.0.
La disinstallazione di SQL Server Compact con le opzioni della riga di comando non funziona in questa versione.
Soluzione alternativa
Usare programmi e funzionalità in Windows Pannello di controllo per disinstallare Microsoft SQL Server Compact 4.0.
Questa sezione del documento descrive le nuove funzionalità, le modifiche e i problemi noti relativi alla versione Beta 3 di Pagine Web ASP.NET con la sintassi Razor.
Il nuovo
Html.Raw
metodo consente di eseguire il rendering del markup HTML come markup invece di eseguire il rendering dell'output codificato. Per impostazione predefinita, ASP.NET Razor codifica le stringhe prima di eseguirne il rendering. La sintassi è:
Html.Raw(value)
Nell'esempio riportato di seguito viene illustrato come usare
Html.Raw
:@* Inserts literal markup into the page as specified in the value string. *@ @Html.Raw("<div>Hello <em>world</em>!</div>")
Il
HrefAttribute
metodo dellaWebPage
classe è stato rimosso. Questo helper è stato usato per codificare caratteri non sicuri negli URL. Non è più necessario perché ASP.NET Razor codifica automaticamente le stringhe. Usare il nuovoHtml.Raw
metodo per eseguire il rendering di stringhe non codificate.
Nella versione Beta 3 ASP.NET modifica il modo in cui analizza gli helper creati usando la
@helper
sintassi . In sostanza, la@helper
sintassi viene ora analizzata come blocco di codice anziché come blocco di markup che può includere codice. Pertanto, il codice all'interno dell'helper non deve essere racchiuso tra@{ }
blocchi. Viceversa, il markup all'interno dell'helper deve essere incluso in modo esplicito negli elementi HTML o in ASP.NET tag Razor<text></text>
.Ad esempio, la sintassi seguente
@helper
funziona nella versione Beta 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> }
Nella versione Beta 3 questo helper deve essere modificato in modo che sia simile all'esempio seguente:
@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> }
Si noti che i
@{ }
caratteri intorno al codice iniziale nell'helper non vengono più usati. Ciò è dovuto al fatto che il contenuto degli helper viene considerato come blocco di codice per impostazione predefinita. L'helper esegue il rendering del markup, che inizia con il tag di apertura<a>
. Se l'helper deve eseguire il rendering di testo normale o tag che non includono un tag di chiusura (ad esempio,<meta>
tag), il contenuto di cui eseguire il rendering deve essere in<text></text>
tag.
La proprietà
WebPageContext.HttpContext
è stata rimossa. Utilizzare inveceHttpContext.Current
. LaWebPageContext.HttpContext
proprietà è stata semplicemente sottoposta a wrapping.
L'helper
Nell'assembly
WebMatrix.WebData
sono stati spostati i tipi seguenti:
ExtendedMembershipProvider
SimpleMembershipProvider
SimpleRoleProvider
WebSecurity
La
TagBuilder
classe è stata spostata nell'assembly System.Web.WebPages.dll. In precedenza, si trovava in un assembly che faceva parte di ASP.NET MVC. Questa modifica significa che non è necessario installare ASP.NET MVC per usare laTagBuilder
classe .Tuttavia, la classe è ancora nello spazio dei
System.Web.Mvc
nomi . Per usare laTagBuilder
classe (ad esempio, in un helper Razor personalizzato ASP.NET), è necessario fare riferimento allo spazio dei nomi , ad esempio aggiungendo@using System.Web.Mvc
al codice.
Nella versione Beta 3, per disabilitare la convalida per un singolo campo o un set di campi, è possibile chiamare il
Validation.Exclude
metodo , passando il nome o i nomi dei campi da escludere dalla convalida. Nella versione Beta 3 è disponibile una nuova sintassi per ignorare la convalida. IlValidation
metodo usato nella versione Beta 3 è stato rimosso.Nota
Se non si disabilita la convalida delle richieste, se gli utenti tentano di caricare markup HTML (ad esempio, usando un editor di testo RTF in una pagina), il sito Web segnala un errore simile a Un valore Request.Form potenzialmente pericoloso rilevato dal client e l'input dell'utente non viene accettato. Se si disabilita la convalida delle richieste, è necessario controllare manualmente l'input dell'utente per assicurarsi che non contenga markup o script potenzialmente pericolosi impedendo lo scripting tra siti (XSS) in ASP.NET Core.
Per disabilitare la convalida automatica delle richieste, chiamare il
Request.Unvalidated
metodo , passandolo il nome del campo o di un altro oggetto post per cui si vuole ignorare la convalida della richiesta. È possibile usare questo metodo per ignorare la convalida di tutti gli elementi nelleForm
raccolte ,QueryString
,Cookies
eServerVariables
. Gli esempi seguenti illustrano come usare ilUnvalidated
metodo :Request["userInput"]; // Validated Request.Unvalidated("userInput"); // Validation bypassed Request.Unvalidated().Form["userInput"]; // Validation bypassed Request.QueryString["userPreference"]; // Validated Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed
Problema: comportamento imprevisto quando si usa una tabella utente personalizzata per l'appartenenza
Per inizializzare il provider di appartenenze per un sito Web Razor ASP.NET, chiamare il
WebSecurity.InitializeDatabaseConnection
metodo . In WebMatrix il modello Starter Site include una chiamata a questo metodo nel file _AppStart.cshtml . Se ilautoCreateTables
parametro di questo metodo è impostato su true (per impostazione predefinita, è impostato su true nel modello starter site) e se un nome di tabella non riconosciuto viene passato al metodo (il secondo parametro), il metodo non genera un errore. Crea invece automaticamente la tabella.Questo può essere un problema se si intende usare una tabella utente personalizzata per l'appartenenza, ma passare il nome di tabella errato al
WebSecurity.InitializeDatabaseConnection
metodo . Poiché il metodo non genera per impostazione predefinita un errore se la tabella specificata non esiste e, poiché crea invece una nuova tabella, l'applicazione può sembrare funzionante. Tuttavia, il codice dell'applicazione che si basa sulla tabella utente personalizzata (e sui campi in esso contenuti) può infine non riuscire con errori imprevisti.Soluzione alternativa
Assicurarsi che il nome passato nelInitializeDatabaseConnection
metodo corrisponda alla tabella del profilo utente nel database di appartenenza oppure assicurarsi che ilautoCreateTables
parametro sia impostato su false.
Se un'applicazione WebMatrix usa SQL Server Express ed esegue IIS 7.5 in Windows 7 o Windows Server 2008 R2, è possibile che venga visualizzato un errore che indica che SQL Server non è in grado di recuperare il percorso dell'applicazione locale dell'utente in fase di esecuzione.
Soluzione alternativa Assicurarsi che l'account di Windows in cui viene eseguita l'applicazione (in genere NETWORK SERVICE) disponga delle autorizzazioni di lettura/scrittura per le cartelle radice dell'applicazione e per le sottocartelle, ad esempio App_Data. Informazioni più dettagliate sono disponibili in Problemi con la creazione di istanze degli utenti di SQL Server Express e ASP.net progetti di applicazioni Web.
Problema: in Visual Studio gli spazi dei nomi per gli assembly personalizzati (DLL) non vengono importati automaticamente
Se si usano assembly personalizzati in un progetto in Visual Studio, gli spazi dei nomi dichiarati in tali assembly non vengono importati automaticamente in fase di progettazione. Di conseguenza, i riferimenti ai tipi personalizzati potrebbero non essere riconosciuti in fase di progettazione e contrassegnati come non riconosciuti in Visual Studio (usando una "sottolineatura ondulata"). Questo problema si verifica solo in fase di progettazione in Visual Studio; l'applicazione stessa viene eseguita correttamente.
Soluzione alternativa
Includere un'istruzioneusing
(imports
in Visual Basic) che fa riferimento alle entità non riconosciute in fase di progettazione.
Problema: Visual Studio IntelliSense e i modelli di progetto disponibili solo in ASP.NET MVC versione 3
L'installazione di Pagine Web ASP.NET non installa anche gli strumenti per Visual Studio, ad esempio IntelliSense e i modelli di progetto per le applicazioni Pagine Web ASP.NET.
Soluzione alternativa Per usare IntelliSense e i modelli di progetto per le applicazioni Pagine Web ASP.NET in Visual Studio, installare ASP.NET MVC 3 RC tramite Il programma di installazione della piattaforma Web o il programma di installazione autonomo.
Dopo l'aggiornamento alla versione Beta 3, potrebbe essere visualizzato un errore che indica che non è possibile trovare una classe helper ( ad esempio la
Soluzione alternativa
Impostare come commento le chiamate a qualsiasi helper nel sito, eseguire la pagina _Admin e installare il pacchetto o i pacchetti che includono gli helper da usare. Dopo aver installato il pacchetto, è possibile rimuovere il commento dalle righe che fanno riferimento agli helper.
Problema: la distribuzione di assembly Razor beta 3 ASP.NET nella cartella Bin potrebbe non funzionare nei siti di hosting
Se si distribuisce un sito Web di Pagine Web ASP.NET in un sito di hosting e se si distribuiscono gli assembly Razor Beta 3 ASP.NET nella cartella Bin del sito, è possibile che si verifichino errori, inclusi i seguenti:
Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Ciò può verificarsi se il provider di hosting ha installato gli assembly Pagine Web ASP.NET Beta 1 nella Global Application Cache (GAC) del server. Gli assembly nella GAC hanno la precedenza sugli assembly installati localmente nella cartella Bin .
Soluzione alternativa Contattare il provider di hosting per verificare che gli errori visualizzati siano dovuti a un conflitto tra le versioni del provider degli assembly e il proprio. In tal caso, richiedere al provider di hosting di aggiornare gli assembly nella GAC del server.
Se il server che esegue il sito si trova dietro un server proxy, potrebbe essere necessario configurare le informazioni proxy nel file Web.config per poter leggere informazioni provenienti dall'esterno del sito. Ad esempio, se si usa l'helper, l'helper
ReCaptcha
comunica con il servizio reCAPTCHA, ma potrebbe essere bloccato dal server proxy. Analogamente, i feed usati in Pagine Web ASP.NET, ad esempio il feed usato dalla gestione pacchetti, potrebbero richiedere la configurazione proxy.Se si verificano problemi durante l'uso di un servizio esterno o l'uso del feed del pacchetto, inserire gli elementi seguenti nel file Web.config radice dell'applicazione:
<system.net> <defaultProxy> <proxy autoDetect="False" proxyaddress="[proxy URL]"/> </defaultProxy> </system.net>
Per altre informazioni sulla configurazione di un server proxy, vedere <Elemento proxy> (impostazioni di rete) nel sito Web MSDN.
Se in precedenza è stata installata la versione Beta 1 di Pagine Web ASP.NET con la sintassi Razor e quindi si installa la versione Beta 3, tutti gli assembly appropriati vengono installati nella GAC tranne Microsoft.Web.Infrastructure.dll. Di conseguenza, quando si esegue ASP.NET pagine Razor, viene visualizzato un errore che indica che non è stato possibile caricare Microsoft.Web.Infrastructure.dll .
Questo problema non si verifica se è stata caricata la versione Beta 3 in un computer pulito.
Soluzione alternativa
In Pannello di controllo disinstallare Pagine Web ASP.NET. Reinstallare quindi la versione Beta 3.
Problema: la disinstallazione di .NET Framework versione 4 disabilita Pagine Web ASP.NET con la sintassi Razor
Se si disinstalla .NET Framework versione 4 e quindi si reinstalla, Pagine Web ASP.NET con la sintassi Razor è disabilitata. Le pagine con estensione cshtml non vengono eseguite correttamente. Pagine Web ASP.NET registra un assembly nella radice del computerIl file Web.config e la rimozione di .NET Framework rimuove il file. La reinstallazione di .NET Framework installa una nuova versione del file di configurazione, ma non aggiunge il riferimento per l'assembly Pagine Web ASP.NET.
Soluzione alternativa Dopo aver reinstallato .NET Framework, reinstallare Pagine Web ASP.NET con la sintassi Razor. In questo modo viene aggiunto l'elemento seguente al file Web.config nella radice del computer, che in genere si trova nel percorso seguente:
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>
Problema: le applicazioni distribuite in precedenza con assembly ASP.NET nell'esperienza della cartella Bin riscontrano errori
Durante la distribuzione, copie degli assembly Pagine Web ASP.NET (ad esempio, Microsoft.WebPages.dll) nella cartella Bin del sito Web nel server. Ciò potrebbe essersi verificato automaticamente durante la distribuzione o perché lo sviluppatore ha copiato in modo esplicito gli assembly. Tuttavia, quando viene installata la versione Beta 3, si verificano errori, ad esempio errori che non è possibile trovare determinati tipi. Ciò si verifica perché diversi tipi di Pagine Web ASP.NET sono stati spostati in spazi dei nomi diversi per la versione Beta 3.
Soluzione alternativa
Cancellare la cartella Bin dell'applicazione distribuita, copiare i nuovi assembly nella cartella (o ridistribuire l'applicazione) e quindi riavviare l'applicazione.
Problema: gli URL senza estensione non trovano file con estensione cshtml/.vbhtml in IIS 7 o IIS 7.5
In IIS 7 o IIS 7.5 le richieste con un URL simile al seguente non sono in grado di trovare pagine con estensione cshtml o vbhtml :
http://www.example.com/ExampleSite/ExampleFile
Il problema si verifica perché la riscrittura dell'URL non è abilitata per impostazione predefinita per IIS 7 o IIS 7.5. Lo scenario più simile è che non viene visualizzato il problema durante il test in locale con IIS Express, ma si verifica quando si distribuisce il sito Web in un sito Web di hosting.
Soluzione alternativa
- Se si ha il controllo sul computer server, nel computer server installare l'aggiornamento descritto in Un aggiornamento è disponibile che consente a determinati gestori IIS 7.0 o IIS 7.5 di gestire le richieste i cui URL non terminano con un periodo.
- Se non si ha il controllo sul computer server (ad esempio, si sta distribuendo in un sito Web di hosting), aggiungere quanto segue al file Web.config del sito Web:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
Problema: uso del progetto applicazione Web o ASP.NET MVC e ASP.NET pagine Web nella stessa applicazione
Se si usa Pagine Web ASP.NET in un progetto applicazione Web o ASP.NET'applicazione MVC, è possibile che venga visualizzato un errore che WebPageHttpApplication non è stato trovato.
Soluzione alternativa
Se viene visualizzato questo errore, modificare la classe di base da cui deriva l'applicazione. Nel file Global.asax modificare la riga seguente:public class MvcApplication : WebPageHttpApplication { ... }
In questa:
public class MvcApplication : HttpApplication { ... }
Ciò in effetti inverte una modifica introdotta per la versione Beta 1 di Pagine Web ASP.NET con la sintassi Razor.
Problema: Distribuzione di un'applicazione in un computer in cui non è installato SQL Server Compact
Le applicazioni che includono database SQL Server Compact possono essere eseguite in un computer in cui SQL Server Compact non è installato. Microsoft WebMatrix Beta 3 copia automaticamente questi file binari ed esegue le trasformazioni del file Web.config appropriate.
Soluzione alternativa Se è necessario copiare questi file e apportare manualmente le modifiche al file Web.config , eseguire le operazioni seguenti:
Copiare gli assembly del motore di database nella cartella Bin (e sottocartelle) dell'applicazione nel computer di destinazione:
- Copiare C:\Programmi\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll in \Bin
- Copiare C:\Programmi\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86
- Copiare C:\Programmi\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
Nella cartella radice del sito Web creare o aprire un file Web.config . (In WebMatrix Beta 3 questo tipo di file è disponibile se si fa clic su Tutto nella finestra di dialogo Scegli un tipo di file.
Aggiungere l'elemento seguente come elemento figlio dell'elemento di configurazione> (non all'interno dell'elemento <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>
Se si usa Visual Basic (creazione di file vbhtml ), gli
Database
helper eWebGrid
non funzioneranno se l'applicazione è impostata per l'uso dell'attendibilità media.Soluzione alternativa
Impostare temporaneamente l'applicazione per l'uso dell'attendibilità totale.
SQL Server Compact 4.0 non riconosce la
Encrypt
proprietà dellaSqlCeConnection
classe . Non utilizzare questa proprietà per crittografare i file di database. LaEncrypt
proprietà è stata deprecata nella versione di SQL Server Compact 3.5 ed è stata mantenuta solo per compatibilità con le versioni precedenti.Soluzione alternativa
Utilizzare laEncryption Mode
proprietà dellaSqlCeConnection
classe per crittografare i file di database di SQL Server Compact 4.0. Nell'esempio seguente viene illustrato come creare un database SQL Server Compact 4.0 crittografato usando laEncryption Mode
proprietà :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()
Per modificare la modalità di crittografia di un database SQL Server Compact 4.0 esistente, eseguire le operazioni seguenti:
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>;")
Per crittografare un database SQL Server Compact 4.0 non crittografato, eseguire le operazioni seguenti:
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>;")
Le DLL native di SQL Server Compact 4.0 richiedono le librerie di runtime di Microsoft Visual C++ 2008 (x86, IA64 e x64), Service Pack 1.
Soluzione alternativa
Installare .NET Framework 3.5 SP1. In questo modo vengono installate anche le librerie di runtime di Visual C++ 2008 SP1. È possibile scaricare le librerie dal percorso seguente:Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update
Nota
Si noti che l'installazione di .NET Framework 2.0, 3.0 o 4 non installa le librerie di runtime di Visual C++ 2008 SP1.
Problema: se SQL Server Compact viene installato prima di installare .NET Framework nel computer, il nome invariante del provider non è registrato nel file machine.config di .NET Framework
SQL Server Compact può essere installato in un computer in cui non è installato .NET Framework perché SQL Server Compact richiede .NET Framework. Se non è installato né .NET Framework versione 3.5 né 4 prima di installare SQL Server Compact, il programma di installazione di SQL Server Compact non registra il nome invariante del provider nel file machine.config . Qualsiasi applicazione che si basa sulla voce SQL Server Compact nel file machine.config avrà esito negativo. La voce di registrazione del nome invariante in machine.config è simile all'esempio seguente:
<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>
Soluzione alternativa
Disinstallare SQL Server Compact 4.0 CTP1. Scaricare e installare le versioni complete di .NET Framework dal percorso seguente:Microsoft .NET Framework 3.5 Service Pack 1 (pacchetto completo)
Versione di Microsoft .NET Framework 4.0 (pacchetto completo)Reinstallare quindi SQL Server Compact 4.0 SP1.
Problema: l'installazione di un'applicazione può richiedere molto tempo se la cartella Documenti personali dell'utente viene reindirizzata a una condivisione di rete
Soluzione alternativa
Nessuno. L'applicazione potrebbe richiedere un po' di tempo, ma verrà installata correttamente.
Problema: il sito potrebbe non funzionare dopo la pubblicazione se il campo "URL di destinazione" non è preceduto da http:// o https://
Nella finestra di dialogo Impostazioni di pubblicazione, se l'URL di destinazione non inizia con
http://
ohttps://
, il sito potrebbe non funzionare dopo la distribuzione.Soluzione alternativa
Assicurarsi che prima di pubblicare un sito, l'URL di destinazione nella finestra di dialogo Impostazioni di pubblicazione inizia conhttp://
ohttps://
.
Problema: la pubblicazione di un database MySQL ha esito negativo e viene visualizzato l'errore "Impossibile pubblicare il database. Ciò può verificarsi se il database remoto non può eseguire lo script."
L'errore può verificarsi per diversi motivi. Un motivo per cui è possibile vedere questo errore è se lo script del database contiene una virgoletta singola (') e il set di caratteri predefinito del database MySQL di destinazione non è UTF-8.
Soluzione alternativa
Impostare il set di caratteri predefinito per il database MySQL remoto su UTF-8.
Quando si esegue un report per un sito, se si immette testo nella casella Filtra per URL e si fa clic su Cerca, non accade nulla. Questo perché questo controllo non è funzionale mentre lo stato Group By del report è impostato su Tipo di problema, ovvero l'impostazione predefinita.
Soluzione alternativa Nella scheda Raggruppa per della barra multifunzione fare clic su URL per raggruppare le voci in base all'URL di origine. La casella di testo e il pulsante per filtrare le voci sono funzionali in questo stato.
L'esplorazione di un'applicazione WCF genera un errore simile al seguente:
Impossibile caricare il file o l'assembly 'Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35' o una delle relative dipendenze. Non è possibile trovare il file specificato.
Ciò si verifica perché la versione beta di IIS Express non supporta WCF per impostazione predefinita.
Soluzione alternativa Usare una delle soluzioni alternative seguenti (soluzione alternativa n. 2 richiede Microsoft Windows Vista o versione successiva):
Copiare gli assembly Microsoft.Web.dll e Microsoft.Web.Administration.dll dal percorso di installazione webMatrix alla directory bin dell'applicazione WCF. Per impostazione predefinita, WebMatrix viene installato nella sottocartella Microsoft WebMatrix nella cartella Programmi del sistema.
In Microsoft Windows Vista o versione successiva creare un collegamento simbolico agli assembly nella directory bin usando i comandi seguenti. Questo approccio ha il vantaggio di non creare una copia degli assembly.
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"
Installare i due assembly nella GAC. Da un prompt con privilegi elevati eseguire i comandi seguenti:
gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll" gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
Problema: WebMatrix Beta 3 non è in grado di eseguire determinate attività che richiedono l'elevazione dei privilegi
WebMatrix Beta 3 non è in grado di eseguire determinate attività che richiedono l'elevazione dei privilegi, ad esempio l'installazione di componenti aggiuntivi nelle situazioni seguenti:
- In Windows Vista o Windows 7, si è connessi con un account che non dispone di privilegi amministrativi e controllo dell'account utente è disabilitato.
- Si utilizza Microsoft Windows XP o Microsoft Windows Server 2003.
Soluzione alternativa
La maggior parte delle attività in WebMatrix Beta 3 non richiede l'autorizzazione amministrativa. A tale scopo, è possibile eseguire l'operazione come amministratore o seguire questa procedura:
- In Windows Vista o Windows 7 abilitare controllo dell'account utente.
- In Windows XP aggiungere l'utente al gruppo di sicurezza Administrators.
L'opzione Sito da Raccolta Web è disabilitata se il programma di installazione della piattaforma Web 3.0 non è installato.
Soluzione alternativa
Installare il Installazione guidata piattaforma Web Microsoft 3.0.
In Windows Server 2003, quando si avvia una pagina o si avvia IIS Express, IIS Express non viene avviato. Per le pagine Web viene visualizzato un errore che indica che l'applicazione è stata avviata da un utente non amministrativo.
Soluzione alternativa
Avviare WebMatrix Beta 3 come utente amministratore.
Google Chrome non viene visualizzato nell'elenco dei browser in Esegui nella scheda Home .
Soluzione alternativa
Alcune versioni di Google Chrome non si registrano correttamente con la funzionalità Programmi predefiniti in Windows. Come soluzione alternativa, avvia Google Chrome, fai clic sul menu Personalizza e controlla Google Chrome , fai clic su Opzioni e quindi fai clic su Rendi google Chrome il browser predefinito.
La finestra di dialogo Chiave esterna non consente di immettere il nome della chiave primaria dalla tabella della chiave primaria.
Soluzione alternativa
Si tratta di un comportamento intenzionale. Non è necessario immettere il nome della chiave primaria dalla tabella della chiave primaria.
Il pulsante Relazioni nella scheda Tabella dell'area di lavoro Database è disabilitato per i database di SQL Server Compact.
Soluzione alternativa
Nessuno. SQL Server Compact non supporta le relazioni tra le tabelle.
In SQL Server Compact 4.0, se non si specifica un tipo di dati,
SqlDbType
ad esempio oDbType
per i parametri nelle query con parametri, viene generata un'eccezione quando viene eseguita la query.Soluzione alternativa
Impostare in modo esplicito il tipo di dati per i parametri, adSqlDbType
esempio oDbType
. Questo aspetto è fondamentale nel caso dei tipi di dati BLOB (image
entext
). Usare codice simile al seguente: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()
Per altre informazioni su WebMatrix Beta 3, vedere i siti Web seguenti: