Udostępnij za pośrednictwem


Plik Readme dla programu WebMatrix i wzorca ASP.NET Web Pages (Razor) w wersji Beta 3

Plik Readme dla programu WebMatrix i wzorca ASP.NET Web Pages (Razor) w wersji Beta 3

9 listopada 2010 r.

Zawartość

Omówienie

Microsoft WebMatrix Beta to bezpłatny stos tworzenia aplikacji internetowych instalowany w ciągu kilku minut. Integruje serwer internetowy z bazą danych i strukturami programowania w celu utworzenia jednego zintegrowanego środowiska. Możesz użyć programu WebMatrix Beta, aby usprawnić sposób tworzenia kodu, testowania i publikowania własnej witryny internetowej ASP.NET lub PHP. Możesz też użyć programu WebMatrix Beta, aby rozpocząć nową witrynę internetową przy użyciu popularnych aplikacji typu open source, takich jak DotNetNuke, Umbraco, WordPress lub Php. Program WebMatrix Beta korzysta z tego samego zaawansowanego serwera internetowego, aparatu bazy danych i środowiska platform, które będzie uruchamiać witrynę internetową w Internecie, co sprawia, że przejście od programowania do środowiska produkcyjnego jest bezproblemowe i bezproblemowe.

Instalacja

Aby zainstalować program WebMatrix Beta 3, należy użyć Instalator platformy Microsoft Web 3.0. Po zainstalowaniu Instalatora platformy sieci Web można go użyć do zainstalowania programu WebMatrix Beta 3.

Jeśli masz problemy podczas instalacji, zapoznaj się z tematem Rozwiązywanie problemów z Instalator platformy Microsoft Web.

Instrukcje dotyczące publikowania aplikacji

Zobacz Instrukcje krok po kroku dotyczące publikowania aplikacji

Problemy z nowymi funkcjami, zmianami i kluczami

Instalacja programu WebMatrix Beta 3

Problem: Program WebMatrix Beta 3 jest dostępny tylko na platformach, które obsługują program Microsoft .NET Framework 4

Program .NET Framework w wersji 4 jest wymagany dla programu WebMatrix Beta. W niektórych przypadkach instalator WebMatrix Beta umożliwi próbę zainstalowania na platformie, która nie jest częścią obsługiwanego zestawu konfiguracji. W szczególności system Windows Vista bez aktualizacji z dodatkiem SP1 umożliwi rozpoczęcie instalacji programu WebMatrix Beta, ale składnik programu .NET Framework 4 zakończy się niepowodzeniem i zablokuje instalację.

Obejście
Zainstaluj na obsługiwanej platformie, która obejmuje:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista z dodatkiem SP1 lub nowszym
  • Windows XP z dodatkiem SP3
  • Windows Server 2003 SP2

Problem: Nie można zainstalować programu WebMatrix Beta 3, jeśli program Microsoft Visual Studio 2008 jest zainstalowany bez programu Microsoft Visual Studio 2008 SP1

Obejście
Zainstaluj dodatek Service Pack 1 programu Microsoft Visual Studio 2008 z Centrum pobierania Microsoft.

Problem: Niektóre zestawy dla programu SQL Server Compact 4.0 nie są zainstalowane w usłudze GAC

Zarządzane zestawy dla programu SQL Server Compact 4.0 nie są umieszczane w globalnej pamięci podręcznej zestawów (GAC) podczas instalowania programu SQL Server Compact 4.0 na komputerze 64-bitowym, a komputer ma zainstalowany tylko profil klienta programu .NET Framework 3.5 z dodatkiem SP1. Zarządzane zestawy, które nie są zainstalowane w usłudze GAC, to:

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

Obejście
Odinstaluj program SQL Server Compact 4.0. Pobierz i zainstaluj pełną wersję programu .NET Framework 3.5 SP1 z następującej lokalizacji:

Microsoft .NET Framework 3.5 z dodatkiem Service Pack 1 (pełny pakiet)

Następnie zainstaluj ponownie program SQL Server Compact 4.0.

Problem: Nie można odinstalować programu SQL Server Compact przy użyciu wiersza polecenia

Odinstalowanie programu SQL Server Compact przy użyciu opcji wiersza polecenia nie działa w tej wersji.

Obejście
Użyj programów i funkcji w Panel sterowania systemu Windows, aby odinstalować program Microsoft SQL Server Compact 4.0.

ASP.NET Web Pages

W tej sekcji dokumentu opisano nowe funkcje, zmiany i znane problemy z wersją Beta 3 ASP.NET stron internetowych ze składnią Razor.

Nowe funkcje w wersji beta 3 dla ASP.NET stron internetowych ze składnią Razor

Nowa: metoda "Html.Raw" renderuje niekodowane znaczniki

Nowa Html.Raw metoda umożliwia renderowanie znaczników HTML jako znaczników zamiast renderowania zakodowanych danych wyjściowych. (Domyślnie ASP.NET koduje ciągi Razor przed ich renderowaniem). Składnia to:

Html.Raw(value)

W poniższym przykładzie pokazano, jak używać polecenia Html.Raw:

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

Zmiany w wersji beta 3 dla stron internetowych ASP.NET ze składnią Razor

Zmiana: metoda "HrefAttribute" została usunięta

HrefAttribute Metoda WebPage klasy została usunięta. Ten pomocnik został użyty do kodowania niebezpiecznych znaków w adresach URL. Nie jest już wymagany, ponieważ ASP.NET Razor automatycznie koduje ciągi. (Użyj nowej Html.Raw metody, aby renderować niekodowane ciągi).

Zmiana: składnia deklaratywnych pomocników "@helper" została zmieniona

W wersji Beta 3 ASP.NET zmienia sposób analizowania pomocników tworzonych przy użyciu @helper składni. W istocie składnia @helper jest teraz analizowana jako blok kodu zamiast jako blok znaczników, który może zawierać kod. W związku z tym kod wewnątrz pomocnika nie musi być ujęty w @{ } bloki. Z drugiej strony, znaczniki wewnątrz pomocnika muszą być jawnie uwzględnione w elementach HTML lub w ASP.NET tagach Razor <text></text> .

Na przykład następująca @helper składnia działa w wersji 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>
}

W wersji Beta 3 ten pomocnik musi zostać zmieniony tak, aby wyglądał jak w poniższym przykładzie:

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

Zwróć uwagę, że @{ } znaki wokół początkowego kodu w pomocniku nie są już używane. Dzieje się tak, ponieważ zawartość pomocników jest domyślnie traktowana jako blok kodu. Pomocnik renderuje znaczniki, które zaczynają się od tagu otwierającego <a> . Jeśli pomocnik musi renderować zwykły tekst lub tagi, które nie zawierają tagu zamykającego (na przykład <meta> tagów), zawartość do renderowania musi znajdować się w <text></text> tagach.

Zmiana: usunięto element "WebPageContext.HttpContext"

Właściwość została usunięta WebPageContext.HttpContext . Użycie w zamian parametru HttpContext.Current. (Właściwość WebPageContext.HttpContext po prostu to opakowała).

Zmiana: pomocnik "Facebook" przeniesiony do nowego pakietu

Pomocnik Facebook został przeniesiony do biblioteki Facebook.Helper , która zawiera Facebook pomocnika i dodatkowe funkcje. Tę bibliotekę należy zainstalować jako oddzielny pakiet, zgodnie z opisem w temacie "Instalowanie pomocników z Menedżer pakietów" w samouczku Wprowadzenie do ASP.NET Pages.

Zmiana: typy członkostwa, roli i zabezpieczeń są przenosine do nowego zestawu

Następujące typy zostały przeniesione do WebMatrix.WebData zestawu:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Zmiana: klasa "TagBuilder" została przeniesiona do zestawu System.Web.WebPages.dll

Klasa TagBuilder została przeniesiona do zestawu System.Web.WebPages.dll. Wcześniej było to w zestawie, który był częścią ASP.NET MVC. Ta zmiana oznacza, że nie trzeba instalować ASP.NET MVC, aby użyć TagBuilder klasy .

Jednak klasa nadal znajduje się w System.Web.Mvc przestrzeni nazw. Aby użyć TagBuilder klasy (na przykład w niestandardowym ASP.NET pomocniku Razor), musisz odwołać się do przestrzeni nazw (na przykład przez dodanie @using System.Web.Mvc do kodu).

Zmiana: Zmieniono składnię sprawdzania poprawności żądania; Usunięto klasę "Validation"

W wersji Beta 3, aby wyłączyć walidację dla pojedynczego pola lub zestawu pól, można wywołać Validation.Exclude metodę, przekazując nazwę lub nazwy pól do wykluczenia z walidacji. Nowa składnia jest dostępna w wersji Beta 3 na potrzeby pomijania walidacji. Metoda Validation używana w wersji beta 3 została usunięta.

Uwaga

Jeśli nie wyłączysz sprawdzania poprawności żądania, jeśli użytkownicy spróbują przekazać znaczniki HTML (na przykład przy użyciu edytora tekstu sformatowanego na stronie), witryna internetowa zgłosi błąd, taki jak wykryto potencjalnie niebezpieczną wartość Request.Form od klienta , a dane wejściowe użytkownika nie zostaną zaakceptowane. Jeśli wyłączysz walidację żądania, musisz ręcznie sprawdzić dane wejściowe użytkownika, aby upewnić się, że nie zawiera on potencjalnie niebezpiecznego znaczników lub skryptu przez zapobieganie skryptom między witrynami (XSS) w ASP.NET Core.

Aby wyłączyć automatyczną walidację żądania, wywołaj metodę Request.Unvalidated , przekazując jej nazwę pola lub innego obiektu post, dla którego chcesz pominąć weryfikację żądania. Za pomocą tej metody można pominąć walidację dla wszystkich elementów w Formkolekcjach , , QueryStringCookiesi ServerVariables . W poniższych przykładach pokazano, jak używać Unvalidated metody :

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

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

Znane problemy dotyczące ASP.NET stron internetowych ze składnią Razor

Problem: Nieoczekiwane zachowanie podczas korzystania z niestandardowej tabeli użytkowników na potrzeby członkostwa

Aby zainicjować dostawcę członkostwa dla witryny internetowej Razor ASP.NET, należy wywołać metodę WebSecurity.InitializeDatabaseConnection . (W programie WebMatrix szablon witryny początkowej zawiera wywołanie tej metody w pliku _AppStart.cshtml ). autoCreateTables Jeśli parametr tej metody jest ustawiony na true (domyślnie jest ustawiony na wartość true w szablonie witryny początkowej), a jeśli nierozpoznana nazwa tabeli jest przekazywana do metody (drugi parametr), metoda nie zgłasza błędu. Zamiast tego automatycznie tworzy tabelę.

Może to być problem, jeśli zamierzasz użyć niestandardowej tabeli użytkowników do członkostwa, ale przekaż nieprawidłową nazwę tabeli do WebSecurity.InitializeDatabaseConnection metody . Ponieważ metoda nie zgłasza domyślnie błędu, jeśli określona tabela nie istnieje, a ponieważ zamiast tego tworzy nową tabelę, aplikacja może wydawać się działać. Jednak kod aplikacji, który opiera się na niestandardowej tabeli użytkownika (i na polach w niej), może ostatecznie zakończyć się niepowodzeniem z nieoczekiwanymi błędami.

Obejście
Upewnij się, że nazwa przekazana w InitializeDatabaseConnection metodzie jest zgodna z tabelą profilu użytkownika w bazie danych członkostwa lub upewnij się, że autoCreateTables parametr ma wartość false.

Problem: Błąd "Nie można wygenerować wystąpienia użytkownika programu SQL Server"

Jeśli aplikacja internetowa WebMatrix używa programu SQL Server Express i korzysta z usług IIS 7.5 w systemie Windows 7 lub Windows Server 2008 R2, może zostać wyświetlony błąd wskazujący, że program SQL Server nie może pobrać lokalnej ścieżki aplikacji użytkownika w czasie wykonywania.

Obejście Upewnij się, że konto systemu Windows, w ramach którego działa aplikacja (zazwyczaj USŁUGA SIECIOWA) ma uprawnienia do odczytu/zapisu dla folderów głównych aplikacji i podfolderów, takich jak App_Data. Bardziej szczegółowe informacje są dostępne w temacie Problemy z tworzeniem dostępu użytkowników programu SQL Server Express i ASP.net projektami aplikacji internetowych.

Problem: W programie Visual Studio przestrzenie nazw dla zestawów niestandardowych (DLL) nie są importowane automatycznie

Jeśli używasz zestawów niestandardowych w projekcie w programie Visual Studio, przestrzenie nazw zadeklarowane w tych zestawach nie są automatycznie importowane w czasie projektowania. W związku z tym odwołania do typów niestandardowych mogą nie być rozpoznawane w czasie projektowania i są oznaczone jako nieuznane w programie Visual Studio (przy użyciu "przełącznika"). Ten problem występuje tylko w czasie projektowania w programie Visual Studio; aplikacja działa prawidłowo.

Obejście
Dołącz instrukcję using (imports w Visual Basic), która odwołuje się do jednostek, które nie są rozpoznawane w czasie projektowania.

Problem: Funkcja IntelliSense programu Visual Studio i szablony projektów dostępne tylko w ASP.NET MVC w wersji 3

Instalowanie ASP.NET stron sieci Web nie instaluje również narzędzi dla programu Visual Studio, takich jak IntelliSense i szablony projektów dla aplikacji ASP.NET Web Pages.

Obejście Aby użyć funkcji IntelliSense i szablonów projektów dla aplikacji ASP.NET Web Pages w programie Visual Studio, zainstaluj ASP.NET MVC 3 RC za pomocą Instalatora platformy internetowej lub autonomicznego instalatora.

Problem: Błąd "<nie można odnaleźć klasy pomocniczej> "

Po uaktualnieniu do wersji Beta 3 może zostać wyświetlony błąd, że nie można odnaleźć klasy pomocniczej Facebook (na przykład klasy). Począwszy od wersji beta 2 i kontynuując wersję beta 3, pomocnicy zostali przeniesieni do pakietów, które należy jawnie zainstalować. Istniejące witryny nie są uaktualniane w celu uwzględnienia tych pakietów; Obejmuje to witryny w folderach \My Documents\IISExpress lub \My Documents\My Web Sites . W szczególności ten błąd zostanie wyświetlony, jeśli używasz domyślnej witryny w witrynach Moja witryna (WebSite1), która zawiera odwołanie do Twitter pomocnika.

Obejście
Oznacz jako komentarz wywołania wszystkich pomocników w witrynie, uruchom stronę _Admin i zainstaluj pakiet lub pakiety zawierające pomocników, których chcesz użyć. Po zainstalowaniu pakietu możesz usunąć komentarz z wierszy odwołujących się do pomocników.

Problem: Wdrażanie zestawów Razor ASP.NET w wersji beta 3 w folderze Bin może nie działać w witrynach hostingu

Jeśli wdrożysz witrynę internetową ASP.NET Web Pages w witrynie hostingu, a jeśli wdrożysz zestawy ASP.NET Razor Beta 3 w folderze Bin witryny, mogą wystąpić błędy, w tym następujące:

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

Może się tak zdarzyć, jeśli dostawca hostingu zainstalował zestawy ASP.NET Web Pages Beta 1 w globalnej pamięci podręcznej aplikacji serwera (GAC). Zestawy w GAC mają pierwszeństwo przed zestawami zainstalowanymi lokalnie w folderze Bin .

Obejście Skontaktuj się z dostawcą hostingu, aby potwierdzić, że wyświetlane błędy są spowodowane konfliktem między wersjami zestawów i zestawów dostawcy. Jeśli tak, poproś dostawcę hostingu o zaktualizowanie zestawów w kontroli GAC serwera.

Problem: Odczytywanie źródeł danych lub innych danych zewnętrznych za pośrednictwem serwera proxy

Jeśli serwer z uruchomioną lokacją znajduje się za serwerem proxy, może być konieczne skonfigurowanie informacji o serwerze proxy w pliku Web.config w celu umożliwienia odczytu informacji spoza witryny. Jeśli na przykład używasz ReCaptcha pomocnika, pomocnik komunikuje się z usługą reCAPTCHA, ale może zostać zablokowany przez serwer proxy. Podobnie kanały informacyjne używane w ASP.NET stronach sieci Web, takie jak kanał informacyjny używany przez menedżera pakietów, mogą wymagać konfiguracji serwera proxy.

Jeśli występują problemy podczas pracy z usługą zewnętrzną lub pracy z kanałem informacyjnym pakietów, umieść następujące elementy w głównym pliku Web.config aplikacji:

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

Aby uzyskać więcej informacji na temat konfigurowania serwera proxy, zobacz <element proxy> (ustawienia sieci) w witrynie sieci Web MSDN.

Problem: błąd "nie można załadować Microsoft.Web.Infrastructure.dll"

Jeśli wcześniej zainstalowano wersję Beta 1 ASP.NET Web Pages ze składnią Razor, a następnie zainstalować wersję Beta 3, wszystkie odpowiednie zestawy są zainstalowane w GAC z wyjątkiem Microsoft.Web.Infrastructure.dll. W związku z tym po uruchomieniu ASP.NET stron Razor zostanie wyświetlony błąd wskazujący, że nie można załadować Microsoft.Web.Infrastructure.dll .

Ten problem nie występuje, jeśli załadowano wersję Beta 3 na czystym komputerze.

Obejście
W Panel sterowania odinstaluj ASP.NET stron sieci Web. Następnie zainstaluj ponownie wersję beta 3.

Problem: Odinstalowanie programu .NET Framework w wersji 4 powoduje wyłączenie ASP.NET stron internetowych za pomocą składni Razor

Jeśli odinstalujesz program .NET Framework w wersji 4, a następnie zainstalujesz go ponownie, ASP.NET strony sieci Web ze składnią Razor zostaną wyłączone. Strony z rozszerzeniem cshtml nie działają poprawnie. ASP.NET strony sieci Web rejestrują zestaw w głównym pliku Web.config komputera, a usunięcie programu .NET Framework spowoduje usunięcie tego pliku. Ponowne zainstalowanie programu .NET Framework powoduje zainstalowanie nowej wersji pliku konfiguracji, ale nie dodaje odwołania do zestawu ASP.NET Web Pages.

Obejście po ponownym zainstalowaniu programu .NET Framework zainstaluj ponownie ASP.NET stron internetowych za pomocą składni Razor. Spowoduje to dodanie następującego elementu do pliku Web.config w katalogu głównym komputera, który zazwyczaj znajduje się w następującej lokalizacji:

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: Błędy aplikacji wdrożonych wcześniej z zestawami ASP.NET w folderze Bin

Podczas wdrażania kopie zestawów ASP.NET Web Pages (na przykład Microsoft.WebPages.dll) do folderu Bin witryny internetowej na serwerze. (Mogło się to zdarzyć automatycznie podczas wdrażania lub dlatego, że deweloper jawnie skopiował zestawy). Jednak po zainstalowaniu wersji Beta 3 występują błędy, takie jak błędy, których nie można odnaleźć niektórych typów. Dzieje się tak, ponieważ wiele typów ASP.NET stron sieci Web zostało przeniesionych do różnych przestrzeni nazw dla wersji Beta 3.

Obejście
Wyczyść folder Bin wdrożonej aplikacji, skopiuj nowe zestawy do folderu (lub ponownie wdróż aplikację), a następnie uruchom ponownie aplikację.

Problem: Adresy URL bez rozszerzeń nie znajdują plików cshtml/.vbhtml w usługach IIS 7 lub IIS 7.5

W usługach IIS 7 lub IIS 7.5 żądania o adresie URL, takim jak poniżej, nie mogą znaleźć stron, które mają rozszerzenie cshtml lub vbhtml :

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

Problem występuje, ponieważ ponowne zapisywanie adresów URL nie jest domyślnie włączone dla usług IIS 7 lub IIS 7.5. Najbardziej podobny scenariusz polega na tym, że problem nie występuje podczas testowania lokalnego przy użyciu usług IIS Express, ale występuje podczas wdrażania witryny internetowej w witrynie hostingowej.

Obejście

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

Problem: Używanie projektu aplikacji internetowej lub ASP.NET MVC i ASP.NET stron sieci Web w tej samej aplikacji

Jeśli używasz ASP.NET stron sieci Web w projekcie aplikacji sieci Web lub ASP.NET aplikacji MVC, może zostać wyświetlony błąd , że nie można odnaleźć aplikacji WebPageHttpApplication .

Obejście
Jeśli wystąpi ten błąd, zmień klasę bazową, z której pochodzi aplikacja. W pliku Global.asax zmień następujący wiersz:

public class MvcApplication :  WebPageHttpApplication { ... }

Do tego:

public class MvcApplication :  HttpApplication { ... }

Spowoduje to odwrócenie zmiany wprowadzonej w wersji Beta 1 ASP.NET Web Pages ze składnią Razor.

Problem: Wdrażanie aplikacji na komputerze, na którym nie zainstalowano programu SQL Server Compact

Aplikacje, które obejmują bazy danych SQL Server Compact, mogą być uruchamiane na komputerze, na którym program SQL Server Compact nie jest zainstalowany. Program Microsoft WebMatrix Beta 3 automatycznie kopiuje te pliki binarne i wykonuje odpowiednie przekształcenia pliku Web.config .

Obejście Jeśli musisz skopiować te pliki i ręcznie wprowadzić zmiany w pliku Web.config , wykonaj następujące czynności:

  1. Skopiuj zestawy aparatu bazy danych do folderu Bin (i podfolderów) aplikacji na komputerze docelowym:

    • Kopiowanie C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll do \Bin
    • Skopiuj folder C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86
    • Skopiuj folder C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
  2. W folderze głównym witryny internetowej utwórz lub otwórz plik Web.config . (W programie WebMatrix Beta 3 ten typ pliku jest dostępny po kliknięciu przycisku Wszystko w oknie dialogowym Wybieranie typu pliku).

  3. Dodaj następujący element jako element podrzędny elementu konfiguracji> (nie wewnątrz <elementu 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>

Problem: Pomocnicy bazy danych i usługi WebGrid nie działają w średniej relacji zaufania w Visual Basic

Jeśli używasz języka Visual Basic (tworzenia plików vbhtml), pomocnicy i WebGrid nie będą działać, Database jeśli aplikacja ma wartość Medium Trust.

Obejście
Tymczasowo ustaw aplikację tak, aby korzystała z pełnego zaufania.

SQL Server Compact

Problem: właściwość "Szyfruj" nie jest rozpoznawana

Program SQL Server Compact 4.0 nie rozpoznaje Encrypt właściwości SqlCeConnection klasy . Nie należy używać tej właściwości do szyfrowania plików bazy danych. Właściwość Encrypt została wycofana w wersji SQL Server Compact 3.5 i została zachowana tylko w celu zachowania zgodności z poprzednimi wersjami.

Obejście
Encryption Mode Użyj właściwości SqlCeConnection klasy do szyfrowania plików bazy danych SQL Server Compact 4.0. W poniższym przykładzie pokazano, jak utworzyć zaszyfrowaną bazę danych SQL Server Compact 4.0 przy użyciu Encryption Mode właściwości :

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

Aby zmienić tryb szyfrowania istniejącej bazy danych SQL Server Compact 4.0, wykonaj następujące czynności:

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

Aby zaszyfrować nieszyfrowaną bazę danych SQL Server Compact 4.0, wykonaj następujące czynności:

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: Wymagane są biblioteki środowiska uruchomieniowego programu Microsoft Visual C++ 2008

Natywne biblioteki DLL programu SQL Server Compact 4.0 wymagają bibliotek środowiska uruchomieniowego programu Microsoft Visual C++ 2008 (x86, IA64 i x64), dodatku Service Pack 1.

Obejście
Zainstaluj program .NET Framework 3.5 z dodatkiem SP1. Spowoduje to również zainstalowanie bibliotek środowiska uruchomieniowego visual C++ 2008 z dodatkiem SP1. Biblioteki można pobrać z następującej lokalizacji:

Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update

Uwaga

Należy pamiętać, że instalowanie bibliotek środowiska uruchomieniowego programu .NET Framework 2.0, 3.0 lub 4 nie powoduje zainstalowania bibliotek środowiska uruchomieniowego programu Visual C++ 2008 z dodatkiem SP1.

Problem: Jeśli program SQL Server Compact jest zainstalowany przed zainstalowaniem programu .NET Framework na komputerze, jego niezmienna nazwa dostawcy nie jest zarejestrowana w pliku .NET Framework machine.config

Program SQL Server Compact można zainstalować na maszynie, która nie ma zainstalowanego programu .NET Framework, ponieważ program SQL Server Compact wymaga platformy .NET Framework. Jeśli program .NET Framework w wersji 3.5 ani 4 nie jest zainstalowany przed zainstalowaniem programu SQL Server Compact, instalator programu SQL Server Compact nie rejestruje niezmiennej nazwy dostawcy w pliku machine.config . Każda aplikacja, która opiera się na wpisie SQL Server Compact w pliku machine.config , zakończy się niepowodzeniem. Niezmienny wpis rejestracji nazwy w pliku machine.config wygląda jak w poniższym przykładzie:

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

Obejście
Odinstaluj program SQL Server Compact 4.0 CTP1. Pobierz i zainstaluj pełne wersje programu .NET Framework z następującej lokalizacji:

Microsoft .NET Framework 3.5 z dodatkiem Service Pack 1 (pełny pakiet)
Wersja programu Microsoft .NET Framework 4.0 (pełny pakiet)

Następnie zainstaluj ponownie program SQL Server Compact 4.0 z dodatkiem SP1.

Instalowanie aplikacji

Problem: Instalowanie aplikacji może zająć dużo czasu, jeśli folder Moje dokumenty użytkownika jest przekierowywany do udziału sieciowego

Obejście
Brak. Instalacja aplikacji może zająć trochę czasu, ale zostanie zainstalowana poprawnie.

Publikowanie aplikacji

Problem: Witryna może nie działać po opublikowaniu, jeśli pole "Docelowy adres URL" nie jest poprzedzone http:// lub https://

W oknie dialogowym Ustawienia publikowania, jeśli docelowy adres URL nie zaczyna się od http:// lub https://, witryna może nie działać po wdrożeniu.

Obejście
Upewnij się, że przed opublikowaniem witryny docelowy adres URL w oknie dialogowym Ustawienia publikowania rozpoczyna się od http:// lub https://.

Problem: Publikowanie bazy danych MySQL kończy się niepowodzeniem z powodu błędu "Nie można opublikować bazy danych. Może się tak zdarzyć, jeśli zdalna baza danych nie może uruchomić skryptu.

Ten błąd może wystąpić z wielu powodów. Jednym z powodów, dla których ten błąd jest widoczny, jest to, że skrypt bazy danych zawiera pojedynczy znak cudzysłowu ('), a domyślny zestaw znaków docelowej bazy danych MySQL nie ma wartości UTF-8.

Obejście
Ustaw domyślny zestaw znaków dla zdalnej bazy danych MySQL na WARTOŚĆ UTF-8.

Inne problemy

Problem: Wyszukiwanie/filtrowanie nie działa w raportach dla grupy według: Typ problemu

Po uruchomieniu raportu dla witryny, jeśli wprowadzisz tekst w polu Filtruj według adresu URL i kliknij przycisk Wyszukaj, nic się nie stanie. Jest to spowodowane tym, że ta kontrolka nie działa, gdy stan Grupuj według raportu jest ustawiony na typ problemu, który jest domyślny.

Obejście Na karcie Grupuj według na wstążce kliknij pozycję ADRES URL, aby zgrupować wpisy według ich źródłowego adresu URL. Pole tekstowe i przycisk służący do filtrowania wpisów działają w tym stanie.

Problem: Nie można uruchomić aplikacji WCF z usługami IIS Express

Przejście do aplikacji WCF powoduje błąd podobny do następującego:

Nie można załadować pliku lub zestawu "Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" lub jednej z jego zależności. W systemie nie można odnaleźć określonego pliku.

Dzieje się tak, ponieważ wersja beta usług IIS Express domyślnie nie obsługuje programu WCF.

Obejście Użyj jednego z następujących obejść (obejście nr 2 wymaga systemu Microsoft Windows Vista lub nowszego):

  1. Skopiuj zestawy Microsoft.Web.dll i Microsoft.Web.Administration.dll z lokalizacji instalacji programu WebMatrix do katalogu bin aplikacji WCF. Domyślnie program WebMatrix jest instalowany w podfolderze Microsoft WebMatrix w folderze Program Files systemu.

  2. W systemie Microsoft Windows Vista lub nowszym utwórz symlink do zestawów w katalogu bin przy użyciu następujących poleceń. (Takie podejście ma zaletę, że nie tworzy kopii zestawów).

    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. Zainstaluj dwa zestawy w GAC. W wierszu polecenia z podwyższonym poziomem uprawnień uruchom następujące polecenia:

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

Problem: Program WebMatrix Beta 3 nie może wykonać pewnych zadań wymagających podniesienia uprawnień

Program WebMatrix Beta 3 nie może wykonywać niektórych zadań wymagających podniesienia uprawnień, takich jak instalowanie dodatkowych składników w następujących sytuacjach:

  • W systemie Windows Vista lub Windows 7 użytkownik jest zalogowany przy użyciu konta, które nie ma uprawnień administracyjnych, a kontrola konta użytkownika (UAC) jest wyłączona.
  • Używasz systemu Microsoft Windows XP lub Microsoft Windows Server 2003.

Obejście
Większość zadań w programie WebMatrix Beta 3 nie wymaga uprawnień administracyjnych. W przypadku tych, które to robią, możesz wykonać operację jako administrator lub wykonać następujące kroki:

  • W systemie Windows Vista lub Windows 7 włącz funkcję kontrola konta użytkownika.
  • W systemie Windows XP dodaj użytkownika do grupy zabezpieczeń Administratorzy.

Opcja Witryna z galerii sieci Web jest wyłączona, jeśli instalator platformy sieci Web 3.0 nie jest zainstalowany.

Obejście
Zainstaluj Instalator platformy Microsoft Web 3.0.

Problem: W systemie Windows Server 2003 program IIS Express nie uruchamia się dla użytkownika niebędącego administratorem

W systemie Windows Server 2003 po uruchomieniu strony lub uruchomieniu usług IIS Express program IIS Express nie uruchamia się. W przypadku stron sieci Web jest wyświetlany błąd wskazujący, że aplikacja została uruchomiona przez użytkownika niebędącego administratorem.

Obejście
Uruchom program WebMatrix Beta 3 jako użytkownik administracyjny.

Problem: Przeglądarka Google Chrome nie jest dostępna jako opcja Uruchom

Przeglądarka Google Chrome nie jest wyświetlana na liście przeglądarek w obszarze Uruchom na karcie Narzędzia główne .

Obejście
Niektóre wersje przeglądarki Google Chrome nie rejestrują się poprawnie za pomocą funkcji Programy domyślne w systemie Windows. Aby obejść ten problem, uruchom przeglądarkę Google Chrome, kliknij menu Dostosuj i steruj przeglądarką Google Chrome , kliknij pozycję Opcje, a następnie kliknij pozycję Ustaw przeglądarkę Google Chrome jako domyślną.

Problem: Okno dialogowe "Klucz obcy" nie zezwala na wprowadzanie klucza podstawowego

Okno dialogowe Klucz obcy nie umożliwia wprowadzenia nazwy klucza podstawowego z tabeli kluczy podstawowych.

Obejście
Jest to działanie celowe. Nie trzeba wprowadzać nazwy klucza podstawowego z tabeli kluczy podstawowych.

Problem: przycisk "Relacje" jest wyłączony

Przycisk Relacje na karcie Tabela w obszarze roboczym Bazy danych jest wyłączony dla baz danych SQL Server Compact.

Obejście
Brak. Program SQL Server Compact nie obsługuje relacji między tabelami.

Problem: Sparametryzowane zapytania SQL zgłaszają wyjątki

W programie SQL Server Compact 4.0, jeśli nie określisz typu danych, takiego jak SqlDbType lub DbType parametrów w zapytaniach sparametryzowanych, zgłaszany jest wyjątek podczas uruchamiania zapytania.

Obejście
Jawnie ustaw typ danych dla parametrów, takich jak SqlDbType lub DbType. Ma to kluczowe znaczenie w przypadku typów danych obiektów blob (image i ntext). Użyj kodu podobnego do następującego:

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

Więcej informacji

Aby uzyskać więcej informacji na temat programu WebMatrix Beta 3, zobacz następujące witryny sieci Web: