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
MetodaWebPage
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 nowejHtml.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 parametruHttpContext.Current
. (WłaściwośćWebPageContext.HttpContext
po prostu to opakowała).
Zmiana: pomocnik "Facebook" przeniesiony do nowego pakietu
Pomocnik
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. MetodaValidation
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 wForm
kolekcjach , ,QueryString
Cookies
iServerVariables
. 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 wInitializeDatabaseConnection
metodzie jest zgodna z tabelą profilu użytkownika w bazie danych członkostwa lub upewnij się, żeautoCreateTables
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
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
- Jeśli masz kontrolę nad komputerem serwera, na komputerze serwera zainstaluj aktualizację opisaną w artykule Aktualizacja jest dostępna, która umożliwia niektórym programom obsługi usług IIS 7.0 lub IIS 7.5 obsługę żądań, których adresy URL nie kończą się kropką.
- Jeśli nie masz kontroli nad komputerem serwera (na przykład wdrażasz w witrynie internetowej hostingu), dodaj następujący kod do pliku Web.config witryny sieci Web:
<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:
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
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).
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ściSqlCeConnection
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ściSqlCeConnection
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życiuEncryption 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://
lubhttps://
, 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ę odhttp://
lubhttps://
.
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):
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.
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"
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.
Problem: "Witryna z galerii sieci Web" jest wyłączona
Opcja Witryna z galerii sieci Web jest wyłączona, jeśli instalator platformy sieci Web 3.0 nie jest zainstalowany.
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
lubDbType
parametrów w zapytaniach sparametryzowanych, zgłaszany jest wyjątek podczas uruchamiania zapytania.Obejście
Jawnie ustaw typ danych dla parametrów, takich jakSqlDbType
lubDbType
. Ma to kluczowe znaczenie w przypadku typów danych obiektów blob (image
intext
). 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: