Freigeben über


Infodatei für das Release WebMatrix und ASP.NET Web Pages (Razor) Beta 3

Infodatei für das Release WebMatrix und ASP.NET Web Pages (Razor) Beta 3

9. November 2010

Contents

Übersicht

Microsoft WebMatrix Beta ist ein kostenloser Webentwicklungsstapel, der in Minuten installiert wird. Er integriert einen Webserver in Datenbank- und Programmierframeworks, um eine einzige integrierte Oberfläche zu erstellen. Sie können WebMatrix Beta verwenden, um die Art und Weise zu optimieren, wie Sie Ihre eigene ASP.NET- oder PHP-Website codieren, testen und veröffentlichen, oder Sie können WebMatrix Beta verwenden, um eine neue Website mit beliebten Open-Source-Apps wie DotNetNuke, Umbraco, WordPress oder Joomla zu starten. WebMatrix Beta verwendet dieselbe leistungsstarke Webserver-, Datenbankmodul- und Framework-Umgebung, die Ihre Website im Internet ausführt, wodurch der Übergang von der Entwicklung zur Produktion reibungslos und nahtlos wird.

Installation

Um WebMatrix Beta 3 zu installieren, verwenden Sie Microsoft-Webplattform Installer 3.0. Nachdem Sie den Webplattform-Installer installiert haben, können Sie es verwenden, um WebMatrix Beta 3 zu installieren.

Wenn während der Installation Probleme auftreten, lesen Sie die Problembehandlung bei Microsoft-Webplattform Installer.

Anweisungen für die Veröffentlichung von Anwendungen

Schrittweise Anleitungen für die Veröffentlichung von Anwendungen

Neue Features, Änderungen und Probleme mit DemKnown

WebMatrix Beta 3-Installation

Problem: WebMatrix Beta 3 ist nur auf Plattformen verfügbar, die Microsoft .NET Framework 4 unterstützen

Die .NET Framework-Version 4 ist für WebMatrix Beta erforderlich. In bestimmten Fällen können Sie mit dem WebMatrix Beta-Installationsprogramm versuchen, auf einer Plattform zu installieren, die nicht Teil des unterstützten Konfigurationssatzes ist. Insbesondere können Sie mit Windows Vista ohne das SP1-Update die Installation von WebMatrix Beta starten, die .NET Framework 4-Komponente schlägt jedoch fehl und blockiert die Installation.

Problemumgehung
Installation auf einer unterstützten Plattform, die Folgendes umfasst:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 oder höher
  • Windows XP SP3
  • Windows Server 2003 SP2

Problem: WebMatrix Beta 3 kann nicht installiert werden, wenn Microsoft Visual Studio 2008 ohne Microsoft Visual Studio 2008 SP1 installiert ist.

Problemumgehung
Installieren Sie Microsoft Visual Studio 2008 Service Pack 1 aus dem Microsoft Download Center.

Problem: Einige Assemblys für SQL Server Compact 4.0 sind nicht im GAC installiert.

Die verwalteten Assemblys für SQL Server Compact 4.0 werden nicht im globalen Assemblycache (GAC) platziert, wenn Sie SQL Server Compact 4.0 auf einem 64-Bit-Computer installieren und der Computer nur das .NET Framework 3.5 SP1-Clientprofil installiert hat. Die verwalteten Assemblys, die nicht im GAC installiert sind, sind:

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

Problemumgehung
Deinstallieren Sie SQL Server Compact 4.0. Laden Sie die Vollversion von .NET Framework 3.5 SP1 von folgendem Speicherort herunter, und installieren Sie sie:

Microsoft .NET Framework 3.5 Service Pack 1 (Vollständiges Paket)

Installieren Sie dann SQL Server Compact 4.0 erneut.

Problem: SQL Server Compact kann nicht mithilfe der Befehlszeile deinstalliert werden.

Die Deinstallation von SQL Server Compact mithilfe von Befehlszeilenoptionen funktioniert in dieser Version nicht.

Problemumgehung
Verwenden Sie Programme und Features in windows Systemsteuerung, um Microsoft SQL Server Compact 4.0 zu deinstallieren.

ASP.NET-Webseiten 2

In diesem Abschnitt des Dokuments werden neue Features, Änderungen und bekannte Probleme mit der Beta 3-Version von ASP.NET Webseiten mit Razor-Syntax beschrieben.

Neue Features in Beta 3 für ASP.NET Webseiten mit Razor-Syntax

Neu: Die Methode "Html.Raw" rendert nicht codiertes Markup.

Mit der neuen Html.Raw Methode können Sie HTML-Markup als Markup rendern, anstatt die codierte Ausgabe zu rendern. (Standardmäßig codiert ASP.NET Razor Zeichenfolgen, bevor sie gerendert werden.) Die Syntax lautet:

Html.Raw(value)

Das folgende Beispiel zeigt die Verwendung von Html.Raw:

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

Änderungen in Beta 3 für ASP.NET Webseiten mit Razor-Syntax

Änderung: "HrefAttribute"-Methode entfernt

Die HrefAttribute Methode der WebPage Klasse wurde entfernt. Dieses Hilfsprogramm wurde verwendet, um unsichere Zeichen in URLs zu codieren. Sie ist nicht mehr erforderlich, da ASP.NET Razor automatisch Zeichenfolgen codiert. (Verwenden Sie die neue Html.Raw Methode, um nicht codierte Zeichenfolgen zu rendern.)

Änderung: Syntax für deklarative Hilfsprogramme "@helper" geändert

In der Beta 3-Version ASP.NET ändert, wie Hilfsprogramme analysiert werden, die mithilfe der @helper Syntax erstellt werden. Im Wesentlichen wird die @helper Syntax nun als Codeblock und nicht als Markupblock analysiert, der Code enthalten kann. Daher müssen Code innerhalb des Hilfsprogramms nicht in @{ } Blöcke eingeschlossen werden. Umgekehrt muss Markup innerhalb des Hilfselements explizit in HTML-Elemente oder in ASP.NET Razor-Tags <text></text> enthalten sein.

Die folgende @helper Syntax funktioniert beispielsweise in der Beta 3-Version:

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

In der Beta 3-Version muss dieses Hilfsprogramm so geändert werden, dass es wie im folgenden Beispiel aussieht:

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

Beachten Sie, dass die @{ } Zeichen um den anfänglichen Code im Hilfsprogramm nicht mehr verwendet werden. Dies liegt daran, dass der Inhalt der Hilfsprogramme standardmäßig als Codeblock behandelt wird. Das Hilfsprogramm rendert Markup, das mit dem öffnenden <a> Tag beginnt. Wenn das Hilfsprogramm nur Text oder Tags rendern muss, <meta> die kein schließender Tag enthalten (z. B. Tags), muss der zu rendernde Inhalt in <text></text> Tags enthalten sein.

Änderung: "WebPageContext.HttpContext" entfernt

Die WebPageContext.HttpContext-Eigenschaft wurde entfernt. Verwenden Sie stattdessen HttpContext.Current. (Die WebPageContext.HttpContext Eigenschaft hat dies einfach umschlossen.)

Änderung: "Facebook"-Hilfsprogramm in ein neues Paket verschoben

Der Facebook Hilfsprogramm wurde in die Bibliothek "Facebook.Helper " verschoben, die den Facebook Helfer und zusätzliche Funktionen enthält. Sie müssen diese Bibliothek als separates Paket installieren, wie unter "Installieren von Hilfsern mit Paket-Manager" im Lernprogramm "Erste Schritte mit ASP.NET Seiten" beschrieben.

Änderung: Mitgliedschafts-, Rollen- und Sicherheitstypen werden in neue Assembly verschoben.

Die folgenden Typen wurden in die WebMatrix.WebData Assembly verschoben:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Änderung: Die Klasse "TagBuilder" wurde in System.Web.WebPages.dll Assembly verschoben.

Die TagBuilder Klasse wurde in die System.Web.WebPages.dll-Assembly verschoben. Zuvor befand sich dies in einer Assembly, die Teil ASP.NET MVC war. Diese Änderung bedeutet, dass Sie ASP.NET MVC nicht installieren müssen, um die TagBuilder Klasse zu verwenden.

Die Klasse befindet sich jedoch noch im System.Web.Mvc Namespace. Um die TagBuilder Klasse zu verwenden (z. B. in einem benutzerdefinierten ASP.NET Razor-Hilfsprogramm), müssen Sie auf den Namespace verweisen (z. B. durch Hinzufügen @using System.Web.Mvc zum Code).

Änderung: Anforderungsüberprüfungssyntax geändert; Die Klasse "Validation" wurde entfernt.

In der Beta 3-Version können Sie die Überprüfung für ein einzelnes Feld oder eine Gruppe von Feldern deaktivieren, indem Sie die Validation.Exclude Methode aufrufen, indem Sie den Namen oder die Namen der Felder übergeben, die von der Überprüfung ausgeschlossen werden sollen. Eine neue Syntax steht in der Beta 3-Version zur Umgehung der Überprüfung zur Verfügung. Die Validation in Beta 3 verwendete Methode wurde entfernt.

Hinweis

Wenn Sie die Anforderungsüberprüfung nicht deaktivieren, wenn Benutzer versuchen, HTML-Markup hochzuladen (z. B. mithilfe eines Rich-Text-Editors auf einer Seite), meldet die Website einen Fehler wie ein potenziell gefährlicher Request.Form-Wert wurde vom Client erkannt, und die Benutzereingabe wird nicht akzeptiert. Wenn Sie die Anforderungsüberprüfung deaktivieren, müssen Sie die Benutzereingabe manuell überprüfen, um sicherzustellen, dass sie kein potenziell gefährliches Markup oder Skript enthält, indem Sie cross-Site Scripting (XSS) in ASP.NET Core verhindern.

Um die automatische Anforderungsüberprüfung zu deaktivieren, rufen Sie die Request.Unvalidated Methode auf, und übergeben Sie sie an den Namen des Felds oder eines anderen Postobjekts, für das Sie die Anforderungsüberprüfung umgehen möchten. Mit dieser Methode können Sie die Überprüfung für alle Elemente in den Form, QueryString, und CookiesServerVariables Sammlungen umgehen. Die folgenden Beispiele zeigen, wie die Unvalidated Methode verwendet wird:

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

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

Bekannte Probleme für ASP.NET Webseiten mit Razor-Syntax

Problem: Unerwartetes Verhalten bei Verwendung einer benutzerdefinierten Benutzertabelle für die Mitgliedschaft

Um den Mitgliedschaftsanbieter für eine ASP.NET Razor-Website zu initialisieren, rufen Sie die WebSecurity.InitializeDatabaseConnection Methode auf. (In WebMatrix enthält die Startwebsitevorlage einen Aufruf dieser Methode in der Datei _AppStart.cshtml .) Wenn der autoCreateTables Parameter dieser Methode auf "true" festgelegt ist (standardmäßig wird er in der Vorlage "Startwebsite" auf "true" festgelegt), und wenn ein nicht erkannter Tabellenname an die Methode (der zweite Parameter) übergeben wird, löst die Methode keinen Fehler aus. Stattdessen wird die Tabelle automatisch erstellt.

Dies kann ein Problem sein, wenn Sie eine benutzerdefinierte Benutzertabelle für die Mitgliedschaft verwenden möchten, aber den falschen Tabellennamen an die WebSecurity.InitializeDatabaseConnection Methode übergeben. Da die Methode standardmäßig keinen Fehler ausgelöst hat, wenn die angegebene Tabelle nicht vorhanden ist, und da sie stattdessen eine neue Tabelle erstellt, kann die Anwendung scheinbar funktionieren. Anwendungscode, der auf der benutzerdefinierten Benutzertabelle (und auf Feldern in der Tabelle) basiert, kann jedoch zu unerwarteten Fehlern führen.

Problemumgehung
Stellen Sie sicher, dass der in der InitializeDatabaseConnection Methode übergebene Name der Benutzerprofiltabelle in der Mitgliedschaftsdatenbank entspricht, oder stellen Sie sicher, dass der autoCreateTables Parameter auf "false" festgelegt ist.

Problem: Fehler "Fehler beim Generieren einer Benutzerinstanz von SQL Server"

Wenn eine WebMatrix-Webanwendung SQL Server Express verwendet und IIS 7.5 unter Windows 7 oder Windows Server 2008 R2 ausführt, wird möglicherweise ein Fehler angezeigt, der angibt, dass SQL Server den lokalen Anwendungspfad des Benutzers zur Laufzeit nicht abrufen kann.

Problemumgehung Stellen Sie sicher, dass das Windows-Konto, unter dem die Anwendung ausgeführt wird (in der Regel NETWORK SERVICE) Über Lese-/Schreibberechtigungen für Stammordner der Anwendung und für Unterordner wie App_Data verfügt. Ausführlichere Informationen finden Sie unter Problemen mit sql Server Express-Benutzerinstancing und ASP.net Webanwendungsprojekten.

Problem: In Visual Studio werden Namespaces für benutzerdefinierte Assemblys (DLLs) nicht automatisch importiert.

Wenn Sie benutzerdefinierte Assemblys in einem Projekt in Visual Studio verwenden, werden die in diesen Assemblys deklarierten Namespaces zur Entwurfszeit nicht automatisch importiert. Daher werden Verweise auf benutzerdefinierte Typen möglicherweise zur Entwurfszeit nicht erkannt und in Visual Studio als nicht erkannt (mit einem "Wellenstrich") gekennzeichnet. Dieses Problem tritt nur zur Entwurfszeit in Visual Studio auf; die Anwendung selbst wird ordnungsgemäß ausgeführt.

Problemumgehung
Schließen Sie eine using Anweisung (imports in Visual Basic) ein, die auf die Entitäten verweist, die zur Entwurfszeit nicht erkannt werden.

Problem: Visual Studio IntelliSense und Projektvorlagen nur in ASP.NET MVC Version 3 verfügbar

Beim Installieren von ASP.NET Webseiten werden nicht auch Tools für Visual Studio wie IntelliSense und Projektvorlagen für ASP.NET Webanwendungen installiert.

Problemumgehung Zum Verwenden von IntelliSense- und Projektvorlagen für ASP.NET Webanwendungen in Visual Studio installieren Sie ASP.NET MVC 3 RC entweder über den Webplattform-Installer oder das eigenständige Installationsprogramm.

Problem: Fehler "<Hilfsklasse> kann nicht gefunden werden"

Nach dem Upgrade auf Beta 3 wird möglicherweise ein Fehler angezeigt, dass eine Hilfsklasse (z. B. die Facebook Klasse) nicht gefunden werden kann. Ab Beta 2 und weiter in Beta 3 wurden Hilfsprogramme in Pakete verschoben, die Sie explizit installieren müssen. Vorhandene Websites werden nicht aktualisiert, um diese Pakete einzuschließen; dies schließt Websites in den Ordnern \My Documents\IISExpress oder \My Documents\My Web Sites ein. Insbesondere wird dieser Fehler angezeigt, wenn Sie die Standardwebsite in "Meine Websites " (WebSite1) verwenden, die einen Verweis auf das Twitter Hilfsprogramm enthält.

Problemumgehung
Kommentieren Sie Aufrufe an alle Helfer auf der Website aus, führen Sie die _Admin-Seite aus, und installieren Sie das Paket oder die Pakete, die die Hilfsprogramme enthalten, die Sie verwenden möchten. Nachdem Sie das Paket installiert haben, können Sie die Kommentare der Zeilen aufheben, die auf Hilfsprogramme verweisen.

Problem: Das Bereitstellen von Beta 3 ASP.NET Razor-Assemblys im Ordner "Bin" funktioniert möglicherweise nicht auf Hostingwebsites.

Wenn Sie eine ASP.NET Webseite auf einer Hostingwebsite bereitstellen und die ASP.NET Razor Beta 3-Assemblys im Ordner "Bin" der Website bereitstellen, treten möglicherweise Fehler auf, einschließlich der folgenden:

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

Dies kann passieren, wenn der Hostinganbieter die ASP.NET Web Pages Beta 1-Assemblys im globalen Anwendungscache (GAC) des Servers installiert hat. Assemblys im GAC haben Vorrang vor assemblys, die lokal im Ordner "Bin " installiert sind.

Problemumgehung Wenden Sie sich an Ihren Hostinganbieter, um zu bestätigen, dass die angezeigten Fehler auf einen Konflikt zwischen den Versionen der Assemblys des Anbieters und Ihrer zurückzuführen sind. Falls ja, fordern Sie an, dass der Hostinganbieter die Assemblys im GAC des Servers aktualisiert.

Problem: Lesen von Feeds oder anderen externen Daten über einen Proxyserver

Wenn sich der Server, auf dem der Standort ausgeführt wird, hinter einem Proxyserver befindet, müssen Sie möglicherweise Proxyinformationen in der Datei "Web.config " konfigurieren, um Informationen lesen zu können, die von außerhalb Ihrer Website stammen. Wenn Sie z. B. das ReCaptcha Hilfsprogramm verwenden, kommuniziert der Hilfsdienst mit dem reCAPTCHA-Dienst, kann aber vom Proxyserver blockiert werden. Ebenso erfordern Feeds, die in ASP.NET Webseiten verwendet werden, z. B. den vom Paket-Manager verwendeten Feed, eine Proxykonfiguration.

Wenn Beim Arbeiten mit einem externen Dienst oder beim Arbeiten mit dem Paketfeed Probleme auftreten, fügen Sie die folgenden Elemente in die Stammdatei "Web.config " Ihrer Anwendung ein:

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

Weitere Informationen zum Konfigurieren eines Proxyservers finden Sie unter <Proxyelement> (Netzwerkeinstellungen) auf der MSDN-Website.

Problem: Fehler "Microsoft.Web.Infrastructure.dll kann nicht geladen werden"

Wenn Sie zuvor die Beta 1-Version von ASP.NET Webseiten mit Razor-Syntax installiert und dann die Beta 3-Version installieren, werden alle entsprechenden Assemblys im GAC installiert, mit Ausnahme von Microsoft.Web.Infrastructure.dll. Wenn Sie ASP.NET Razor-Seiten ausführen, wird ein Fehler angezeigt, der angibt, dass Microsoft.Web.Infrastructure.dll nicht geladen werden konnten.

Dieses Problem tritt nicht auf, wenn Sie die Beta 3-Version auf einem sauberen Computer geladen haben.

Problemumgehung
Deinstallieren Sie in Systemsteuerung ASP.NET Webseiten. Installieren Sie dann die Beta 3-Version erneut.

Problem: Durch die Deinstallation von .NET Framework, Version 4, werden ASP.NET Webseiten mit Razor-Syntax deaktiviert.

Wenn Sie .NET Framework, Version 4, deinstallieren und dann erneut installieren, ist ASP.NET Webseiten mit Razor-Syntax deaktiviert. Seiten mit der Erweiterung CSHTML werden nicht ordnungsgemäß ausgeführt. ASP.NET Webseiten registriert eine Assembly in der Datei "Machine Root Web.config ", und das Entfernen von .NET Framework entfernt diese Datei. Durch erneutes Installieren von .NET Framework wird eine neue Version der Konfigurationsdatei installiert, aber der Verweis für die Assembly ASP.NET Webseiten wird nicht hinzugefügt.

Problemumgehung Nach der Neuinstallation von .NET Framework installieren Sie ASP.NET Webseiten mit Razor-Syntax erneut. Dadurch wird der Datei "Web.config " im Computerstamm das folgende Element hinzugefügt, das sich in der Regel am folgenden Speicherort befindet:

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>

Problem: Anwendungen, die zuvor mit ASP.NET Assemblys im Ordner "Bin" bereitgestellt wurden, treten Fehler auf

Während der Bereitstellung werden Kopien der ASP.NET Webseitenassemblys (z . B. Microsoft.WebPages.dll) in den Ordner "Bin " der Website auf dem Server kopiert. (Dies ist möglicherweise während der Bereitstellung automatisch geschehen oder weil der Entwickler die Assemblys explizit kopiert hat.) Wenn die Beta 3-Version installiert ist, treten jedoch Fehler auf, z. B. Fehler, die bestimmte Typen nicht gefunden werden können. Dies tritt auf, da eine Reihe von ASP.NET Webseitentypen in verschiedene Namespaces für die Beta 3-Version verschoben wurden.

Problemumgehung
Löschen Sie den Ordner "Bin " der bereitgestellten Anwendung, kopieren Sie die neuen Assemblys in den Ordner (oder stellen Sie die Anwendung erneut bereit), und starten Sie die Anwendung dann neu.

Problem: Erweiterungslose URLs finden keine .cshtml/.vbhtml-Dateien in IIS 7 oder IIS 7.5.

In IIS 7 oder IIS 7.5 können Anforderungen mit einer URL wie der folgenden keine Seiten mit der Erweiterung CSHTML oder VBHTML finden:

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

Das Problem tritt auf, da die URL-Neuschreibung für IIS 7 oder IIS 7.5 nicht standardmäßig aktiviert ist. Das am besten mögliche Szenario besteht darin, dass das Problem beim lokalen Testen mithilfe von IIS Express nicht angezeigt wird, sie aber beim Bereitstellen Ihrer Website auf einer Hostingwebsite auftritt.

Problemumgehung

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

Problem: Verwenden von Webanwendungsprojekt oder ASP.NET MVC und ASP.NET Webseiten in derselben Anwendung

Wenn Sie ASP.NET Webseiten in einem Webanwendungsprojekt oder ASP.NET MVC-Anwendung verwendet haben, wird möglicherweise ein Fehler angezeigt, der von WebPageHttpApplication nicht gefunden werden kann.

Problemumgehung
Wenn dieser Fehler angezeigt wird, ändern Sie die Basisklasse, von der die Anwendung abgeleitet wird. Ändern Sie in der Datei "Global.asax " die folgende Zeile:

public class MvcApplication :  WebPageHttpApplication { ... }

Folgendermaßen:

public class MvcApplication :  HttpApplication { ... }

Dadurch wird eine Änderung rückgängig gemacht, die für die Beta 1-Version von ASP.NET Webseiten mit Razor-Syntax eingeführt wurde.

Problem: Bereitstellen einer Anwendung auf einem Computer, auf dem SQL Server Compact nicht installiert ist

Anwendungen, die SQL Server Compact-Datenbanken enthalten, können auf einem Computer ausgeführt werden, auf dem SQL Server Compact nicht installiert ist. Microsoft WebMatrix Beta 3 kopiert diese Binärdateien automatisch für Sie und führt die entsprechenden Web.config-Dateitransformationen aus.

Problemumgehung Wenn Sie diese Dateien kopieren und die Datei "Web.config " manuell ändern müssen, gehen Sie folgendermaßen vor:

  1. Kopieren Sie die Assemblys des Datenbankmoduls in den Ordner "Bin " (und Unterordner) der Anwendung auf dem Zielcomputer:

    • Kopieren Sie C:\Programme\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll in \Bin
    • Kopieren Sie C:\Programme\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* in \Bin\x86
    • Kopieren Sie C:\Programme\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
  2. Erstellen oder öffnen Sie im Stammordner der Website eine Web.config-Datei . (In WebMatrix Beta 3 ist dieser Dateityp verfügbar, wenn Sie auf Alles im Dialogfeld "Dateityp auswählen".)

  3. Fügen Sie das folgende Element als untergeordnetes Element des Konfigurationselements> hinzu (nicht innerhalb des< System.Web-Elements>):<

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

Problem: Datenbank- und WebGrid-Hilfsprogramme funktionieren nicht in mittlerer Vertrauensstellung in Visual Basic

Wenn Sie Visual Basic (Erstellen von VBHTML-Dateien ) verwenden, funktionieren die Database Hilfsprogramme nicht WebGrid , wenn die Anwendung auf "Mittlere Vertrauensstellung" festgelegt ist.

Problemumgehung
Legen Sie vorübergehend fest, dass die Anwendung voll vertrauenswürdig ist.

SQL Server Compact

Problem: Die Eigenschaft "Encrypt" wird nicht erkannt.

SQL Server Compact 4.0 erkennt die Encrypt Eigenschaft der SqlCeConnection Klasse nicht. Sie sollten diese Eigenschaft nicht zum Verschlüsseln von Datenbankdateien verwenden. Die Encrypt Eigenschaft war in der SQL Server Compact 3.5-Version veraltet und wurde nur aus Gründen der Abwärtskompatibilität beibehalten.

Problemumgehung
Verwenden Sie die Encryption Mode Eigenschaft der SqlCeConnection Klasse, um SQL Server Compact 4.0-Datenbankdateien zu verschlüsseln. Das folgende Beispiel zeigt, wie Sie mithilfe der Encryption Mode Eigenschaft eine verschlüsselte SQL Server Compact 4.0-Datenbank erstellen:

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

Gehen Sie wie folgt vor, um den Verschlüsselungsmodus einer vorhandenen SQL Server Compact 4.0-Datenbank zu ändern:

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

Gehen Sie wie folgt vor, um eine unverschlüsselte SQL Server Compact 4.0-Datenbank zu verschlüsseln:

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

Problem: Microsoft Visual C++ 2008-Laufzeitbibliotheken sind erforderlich.

Die systemeigenen DLLs von SQL Server Compact 4.0 benötigen die Microsoft Visual C++ 2008-Runtime-Bibliotheken (x86, IA64 und x64), Service Pack 1.

Problemumgehung
Installieren Sie .NET Framework 3.5 SP1. Dadurch werden auch die Visual C++ 2008-Laufzeitbibliotheken SP1 installiert. Sie können die Bibliotheken von folgendem Speicherort herunterladen:

Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Sicherheitsupdate

Hinweis

Beachten Sie, dass die Installation von .NET Framework 2.0, 3.0 oder 4 die Visual C++ 2008-Laufzeitbibliotheken SP1 nicht installiert.

Problem: Wenn SQL Server Compact vor der Installation von .NET Framework auf dem Computer installiert ist, wird der Anbieter invarianter Name nicht in der .NET Framework-Datei "machine.config" registriert.

SQL Server Compact kann auf einem Computer installiert werden, auf dem .NET Framework nicht installiert ist, da SQL Server Compact das .NET Framework erfordert. Wenn weder .NET Framework, Version 3.5 noch 4 installiert ist, bevor Sie SQL Server Compact installieren, registriert das SQL Server Compact Setup seinen Anbieter nicht invariantem Namen in der Datei "machine.config ". Jede Anwendung, die auf dem SQL Server Compact-Eintrag in der Datei "machine.config " basiert, schlägt fehl. Der invariante Namenregistrierungseintrag in machine.config sieht wie im folgenden Beispiel aus:

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

Problemumgehung
Deinstallieren Sie SQL Server Compact 4.0 CTP1. Laden Sie die Vollversionen von .NET Framework aus dem folgenden Speicherort herunter, und installieren Sie sie:

Microsoft .NET Framework 3.5 Service Pack 1 (Vollständiges Paket)
Microsoft .NET Framework 4.0 Release (Vollständiges Paket)

Installieren Sie dann SQL Server Compact 4.0 SP1 erneut.

Installieren von Anwendungen

Problem: Das Installieren einer Anwendung kann lange dauern, wenn der Ordner "Eigene Dokumente" des Benutzers zu einer Netzwerkfreigabe umgeleitet wird.

Problemumgehung
Keine. Die Anwendung kann eine Weile dauern, bis sie installiert wird, aber ordnungsgemäß installiert wird.

Veröffentlichen von Anwendungen

Problem: Die Website funktioniert möglicherweise nach der Veröffentlichung nicht, wenn dem Feld "Ziel-URL" kein Präfix http:// oder https://

Wenn die Ziel-URL nicht mit http:// oder https://beginnt, funktioniert die Website möglicherweise nach der Bereitstellung nicht im Dialogfeld "Veröffentlichungseinstellungen".

Problemumgehung
Stellen Sie sicher, dass vor der Veröffentlichung einer Website die Ziel-URL im Dialogfeld "Einstellungen veröffentlichen" mit http:// oder https://.

Problem: Das Veröffentlichen einer MySQL-Datenbank schlägt mit dem Fehler "Fehler beim Veröffentlichen der Datenbank fehl. Dies kann passieren, wenn die Remotedatenbank das Skript nicht ausführen kann."

Der Fehler kann aus einer Reihe von Gründen auftreten. Ein Grund, warum dieser Fehler angezeigt wird, besteht darin, dass das Datenbankskript ein einfaches Anführungszeichen (') enthält und der Standardzeichensatz der MySQL-Datenbank nicht auf UTF-8 festgelegt ist.

Problemumgehung
Legen Sie den Standardzeichensatz für die Remote-MySQL-Datenbank auf UTF-8 fest.

Andere Probleme

Problem: Suche/Filter funktioniert in Berichten für "Gruppieren nach" nicht: Problemtyp

Wenn Sie einen Bericht für eine Website ausführen, wenn Sie Text in das Feld "Nach URL filtern" eingeben und auf "Suchen" klicken, geschieht nichts. Dies liegt daran, dass dieses Steuerelement nicht funktionsfähig ist, während der Status "Gruppieren nach " des Berichts auf "Problemtyp" festgelegt ist. Dies ist die Standardeinstellung.

Problemumgehung klicken Sie auf der Registerkarte "Gruppieren nach " im Menüband auf "URL ", um die Einträge nach deren Quell-URL zu gruppieren. Das Textfeld und die Schaltfläche zum Filtern der Einträge sind in diesem Zustand funktionsfähig.

Problem: WCF-Anwendungen können nicht mit IIS Express ausgeführt werden

Das Browsen zu einer WCF-Anwendung führt zu einem Fehler wie dem folgenden:

Datei oder Assembly "Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde nicht gefunden.

Dies tritt auf, da die IIS Express Beta-Version WCF standardmäßig nicht unterstützt.

Problemumgehung Verwenden Sie eine der folgenden Problemumgehungen (Problemumgehung Nr. 2 erfordert Microsoft Windows Vista oder höher):

  1. Kopieren Sie die assemblys Microsoft.Web.dll und Microsoft.Web.Administration.dll aus dem WebMatrix-Installationsspeicherort in das Bin-Verzeichnis der WCF-Anwendung. Standardmäßig wird WebMatrix im Unterordner "Microsoft WebMatrix" unter dem Ordner "Programme" des Systems installiert.

  2. Erstellen Sie unter Microsoft Windows Vista oder höher mithilfe der folgenden Befehle einen Symlink zu den Assemblys im Bin-Verzeichnis . (Dieser Ansatz hat den Vorteil, dass keine Kopie der Assemblys erstellt wird.)

    mklink Microsoft.Web.Administration.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"
    mklink Microsoft.Web.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
    
  3. Installieren Sie die beiden Assemblys im GAC. Führen Sie an einer Eingabeaufforderung mit erhöhten Rechten die folgenden Befehle aus:

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

Problem: WebMatrix Beta 3 kann bestimmte Aufgaben, die Erhöhung erfordern, nicht ausführen.

WebMatrix Beta 3 kann bestimmte Aufgaben, die eine Erhöhung erfordern, nicht ausführen, z. B. das Installieren zusätzlicher Komponenten in den folgenden Situationen:

  • Unter Windows Vista oder Windows 7 sind Sie mit einem Konto angemeldet, das nicht über Administratorrechte verfügt und die Benutzerkontensteuerung (User Account Control, UAC) deaktiviert ist.
  • Sie verwenden Microsoft Windows XP oder Microsoft Windows Server 2003.

Problemumgehung
Die meisten Aufgaben in WebMatrix Beta 3 erfordern keine Administratorberechtigung. Für diejenigen, die dies tun, können Sie den Vorgang als Administrator ausführen oder die folgenden Schritte ausführen:

  • Aktivieren Sie unter Windows Vista oder Windows 7 UAC.
  • Fügen Sie unter Windows XP den Benutzer zur Sicherheitsgruppe "Administratoren" hinzu.

Die Option "Website aus Web Gallery " ist deaktiviert, wenn der Webplattform-Installer 3.0 nicht installiert ist.

Problemumgehung
Installieren Sie den Microsoft-Webplattform Installer 3.0.

Problem: Unter Windows Server 2003 wird IIS Express nicht für einen nicht administrativen Benutzer gestartet

Wenn Sie auf Windows Server 2003 eine Seite starten oder IIS Express starten, wird IIS Express nicht gestartet. Bei Webseiten wird ein Fehler angezeigt, der angibt, dass die Anwendung von einem nicht administrativen Benutzer gestartet wurde.

Problemumgehung
Starten Sie WebMatrix Beta 3 als Administratorbenutzer.

Problem: Google Chrome ist nicht als Option "Ausführen" verfügbar.

Google Chrome wird nicht in der Liste der Browser unter "Start" auf der Registerkarte "Start " angezeigt.

Problemumgehung
Einige Versionen von Google Chrome registrieren sich nicht ordnungsgemäß mit dem Feature "Standardprogramme" in Windows. Als Problemumgehung starten Sie Google Chrome, klicken Sie auf das Menü "Google Chrome anpassen und steuern", klicken Sie auf " Optionen", und klicken Sie dann auf "Google Chrome als Standardbrowser festlegen".

Problem: Das Dialogfeld "Fremdschlüssel" lässt die Eingabe eines Primärschlüssels nicht zu.

Im Dialogfeld Fremdschlüssel können Sie nicht den Primärschlüsselnamen aus der Primärschlüsseltabelle eingeben.

Problemumgehung
Dies ist beabsichtigt. Sie müssen nicht den Namen des Primärschlüssels aus der Primärschlüsseltabelle eingeben.

Problem: Die Schaltfläche "Beziehungen" ist deaktiviert.

Die Schaltfläche "Beziehungen " unter der Registerkarte "Tabelle " im Arbeitsbereich "Datenbanken " ist für SQL Server Compact-Datenbanken deaktiviert.

Problemumgehung
Keine. SQL Server Compact unterstützt keine Beziehungen zwischen Tabellen.

Problem: Parametrisierte SQL-Abfragen lösen Ausnahmen aus

Wenn Sie in SQL Server Compact 4.0 keinen Datentyp angeben, z SqlDbType . B. oder DbType für Parameter in parametrisierten Abfragen, wird beim Ausführen der Abfrage eine Ausnahme ausgelöst.

Problemumgehung
Legen Sie den Datentyp explizit für Parameter wie SqlDbType z. B. oder DbType. Dies ist im Fall von BLOB-Datentypen (image und ntext) kritisch. Verwenden Sie Code wie die folgenden:

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

Weitere Informationen

Weitere Informationen zu WebMatrix Beta 3 finden Sie auf den folgenden Websites: