Megosztás a következőn keresztül:


Web Matrix és ASP.NET Weblapok (Razor) Beta 3 verzió – Kiadási megjegyzések

Web Matrix és ASP.NET Weblapok (Razor) Beta 3 verzió – Kiadási megjegyzések

2010. november 9.

Tartalom

Áttekintés

A Microsoft WebMatrix Béta egy ingyenes webfejlesztési verem, amely percek alatt telepíthető. Egy webkiszolgálót integrál adatbázis- és programozási keretrendszerekkel egyetlen integrált felület létrehozásához. A WebMatrix Bétaverzióval egyszerűsítheti a saját ASP.NET vagy PHP-webhely kódolását, tesztelését és közzétételét, vagy a WebMatrix Bétaverzióval új webhelyet indíthat olyan népszerű nyílt forráskódú alkalmazások használatával, mint a DotNetNuke, az Umbraco, a WordPress vagy a Joomla. A WebMatrix Béta ugyanazt a hatékony webszervert, adatbázismotort és keretrendszer-környezetet használja, amely képes az interneten futtatni a webhelyet, ezzel biztosítva a fejlesztésről az éles környezetre való zökkenőmentes áttérést.

Telepítés

Megjegyzés:

A WebMatrix már nem ajánlott integrált fejlesztési környezetként ASP.NET weblapokhoz. Használja a Visual Studiót vagy a Visual Studio Code-ot.

Ha a telepítés során problémákat tapasztal, tekintse meg a Microsoft Web Platform Installer hibaelhárítási problémáit.

Utasítások az alkalmazások közzétételéhez

Az alkalmazások közzétételének részletes útmutatója

Új funkciók, változások és ismert problémák

WebMatrix 3. bétaverzió telepítése

Probléma: A WebMatrix 3. bétaverziója csak a Microsoft .NET-keretrendszer 4-et támogató platformokon érhető el

A .NET-keretrendszer 4-es verziója szükséges a WebMatrix bétaverzióhoz. Bizonyos esetekben a WebMatrix bétaverzió telepítője lehetővé teszi a telepítést olyan platformra, amely nem része a támogatott konfigurációs csoportnak. Az SP1-frissítés nélküli Windows Vista lehetővé teszi a WebMatrix Béta telepítésének megkezdését, de a .NET Framework 4 összetevő sikertelen lesz, és letiltja a telepítést.

Megoldás
Telepítsen egy támogatott platformra, amely a következőket tartalmazza:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 vagy újabb
  • Windows XP SP3
  • Windows Server 2003 SP2

Probléma: A WebMatrix 3. bétaverziója nem telepíthető, ha a Microsoft Visual Studio 2008 a Microsoft Visual Studio 2008 SP1 nélkül van telepítve

Megoldás
Telepítse a Microsoft Visual Studio 2008 Service Pack 1 szervizcsomagot a Microsoft Letöltőközpontból.

Probléma: Az SQL Server Compact 4.0 egyes szerelvények nincsenek telepítve a GAC-ban

Az SQL Server Compact 4.0 felügyelt szerelvények nem kerülnek a globális szerelvény-gyorsítótárba (GAC), amikor az SQL Server Compact 4.0-t 64 bites számítógépre telepíti, és a számítógépen csak a .NET-keretrendszer 3.5 SP1 ügyfélprofilja van telepítve. Azok a felügyelt assemblyk, amelyek nincsenek telepítve a GAC-ba, a következők:

  • System.Data.SqlServerCe.dll (ADO.NET szolgáltató)
  • System.Data.SqlServerCe.Entity.dll (ADO.NET Entitási keretrendszer )

Megoldás
Távolítsa el az SQL Server Compact 4.0-t. Töltse le és telepítse a .NET Framework 3.5 SP1 teljes verzióját a következő helyről:

Microsoft .NET Framework 3.5 Service Pack 1 (teljes csomag)

Ezután telepítse újra az SQL Server Compact 4.0-t.

Probléma: Az SQL Server Compact nem távolítható el a parancssorból

Az SQL Server Compact parancssori beállításokkal való eltávolítása ebben a kiadásban nem működik.

Megoldás
A Microsoft SQL Server Compact 4.0 eltávolításához használja a Windows Vezérlőpult Programok és szolgáltatások funkcióját.

ASP.NET weblapok

A dokumentum ezen szakasza a Razor-szintaxissal rendelkező ASP.NET weblapok 3. bétaverziójának új funkcióit, változásait és ismert problémáit ismerteti.

A 3. bétaverzió új funkciói ASP.NET razor szintaxissal rendelkező weblapokhoz

Új: A "Html.Raw" metódus kódolatlan korrektúrát jelenít meg

Az új Html.Raw módszer lehetővé teszi a HTML-korrektúrák korrektúraként való megjelenítését a kódolt kimenet megjelenítése helyett. (Alapértelmezés szerint ASP.NET Razor a renderelés előtt kódolja a sztringeket.) A szintaxis a következő:

Html.Raw(value)

Az alábbi példa a Html.Rawhasználatát mutatja be:

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

A Razor szintaxissal rendelkező ASP.NET weblapok 3. bétaverziójának változásai

Módosítás: A "HrefAttribute" metódus el lett távolítva

A HrefAttribute osztály WebPage metódusa el lett távolítva. Ezzel a segédkel kódolták a nem biztonságos karaktereket az URL-címekben. Ez már nem szükséges, mert ASP.NET Razor automatikusan kódolja a sztringeket. (Az új Html.Raw metódussal kódolatlan sztringeket jeleníthet meg.)

Módosítás: Módosult a deklaratív "@helper" segítők szintaxisa

A 3. bétaverzió kiadásában ASP.NET módosítja, hogyan elemzi a @helper szintaxissal létrehozott segítőket. A @helper szintaxist lényegében most kódblokkként elemzik, nem pedig kódot tartalmazó jelölőblokkként. Ezért a segédben lévő kódnak nem kell @{ } blokkokban lennie. Ezzel szemben a segítőn belüli jelöléseket kifejezetten bele kell foglalni a HTML-elemekbe vagy az ASP.NET Razor <text></text> címkékbe.

A következő @helper szintaxis például a 3. bétaverzió kiadásában működik:

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

A Béta 3 kiadásban ezt a segédet a következő példához hasonlóan kell módosítani:

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

Figyelje meg, hogy a @{ } karakterek a segéd kezdeti kódjában már nincsenek használatban. Ennek az az oka, hogy a segédek tartalma alapértelmezés szerint kódblokkként van kezelve. A segédprogram megjeleníti a jelöléseket, amely a nyitó <a> címkével kezdődik. Ha a segédnek egyszerű szöveget vagy olyan címkéket kell megjelenítenie, amelyek nem tartalmaznak záró címkét (például <meta> címkék), a megjelenítendő tartalomnak <text></text> címkékben kell lennie.

Módosítás: "WebPageContext.HttpContext" el lett távolítva

A WebPageContext.HttpContext tulajdonság el lett távolítva. A HttpContext.Current használható helyette. (A WebPageContext.HttpContext tulajdonság egyszerűen becsomagolta ezt.)

Módosítás: A "Facebook" segítője átkerült az új csomagra

A Facebook segítő át lett helyezve a Facebook.Helper könyvtárba, amely tartalmazza a segítőt és a Facebook további funkciókat. Ezt a kódtárat külön csomagként kell telepítenie, a "Segítők telepítése a Csomagkezelővel" című oktatóanyagban leírtaknak megfelelően , amely a ASP.NET lapok használatának első lépéseit ismerteti.

Módosítás: Tagság, szerepkör és biztonsági típusok új összeállításba kerülnek

A következő típusok lettek áthelyezve a WebMatrix.WebData szerelvénybe:

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Módosítás: A "TagBuilder" osztály átkerült System.Web.WebPages.dll szerelvénybe

Az TagBuilder osztály át lett helyezve a System.Web.WebPages.dll szerelvénybe. Korábban ez egy olyan összeállításban volt, amely az ASP.NET MVC része volt. Ez a módosítás azt jelenti, hogy az osztály használatához nem kell telepítenie ASP.NET MVC-t TagBuilder .

Az osztály azonban továbbra is a System.Web.Mvc névtérben van. Ahhoz, hogy a TagBuilder osztályt használhassa (például egy egyéni ASP.NET Razor segítőnél), hivatkoznia kell a névtérre (például úgy, hogy hozzáadja a @using System.Web.Mvc kódjához).

Módosítás: A kérelem érvényesítési szintaxisa módosult; "Érvényesítési" osztály el lett távolítva

A 3. bétaverzióban az egyes mezők vagy mezők érvényesítésének letiltásához meghívhatja a Validation.Exclude metódust, és a mezők nevét vagy nevét átadva kizárhatja az ellenőrzésből. Az ellenőrzés megkerüléséhez új szintaxis érhető el a 3. bétaverzió kiadásában. A Validation 3. bétaverzióban használt módszer el lett távolítva.

Megjegyzés:

Amennyiben nem tiltja le a kérelem érvényesítést, és a felhasználók HTML jelölést próbálnak feltölteni (például egy rich text szerkesztő használatával egy oldalon), a webhely hibát jelez, például ezt: Az ügyféltől potenciálisan veszélyes Request.Form érték lett észlelve, és a felhasználói bemenet nem kerül elfogadásra. Ha letiltja a kérések érvényesítését, manuálisan kell ellenőriznie a felhasználói bemenetet, hogy ne tartalmazzon potenciálisan veszélyes korrektúrát vagy szkriptet, mivel megakadályozza a helyek közötti szkriptelést (XSS) a ASP.NET Core-ban.

Az automatikus kérésérvényesítés letiltásához hívja meg a Request.Unvalidated metódust, és adja meg annak a mezőnek vagy más post objektumnak a nevét, amelyhez meg szeretné kerülni a kérésérvényesítést. Ezzel a módszerrel megkerülheti az ellenőrzést a Form, QueryString, , Cookiesés ServerVariables gyűjtemények bármely eleméhez. Az alábbi példák bemutatják, hogyan kell használni a Unvalidated metódust.

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

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

A Razor szintaxissal rendelkező ASP.NET weblapok ismert problémái

Probléma: Váratlan viselkedés egyéni felhasználói tábla tagsághoz való használatakor

Egy ASP.NET Razor-webhely tagságszolgáltatójának inicializálásához hívja meg a metódust WebSecurity.InitializeDatabaseConnection . (A WebMatrixben a Kezdőwebhely sablon a _AppStart.cshtml fájlban meghívja ezt a metódust.) Ha a autoCreateTables metódus paramétere igaz (alapértelmezés szerint igaz értékre van állítva a Kezdőwebhely sablonban), és ha egy ismeretlen táblanevet ad át a metódusnak (a második paraméternek), a metódus nem ad hibát. Ehelyett automatikusan létrehozza a táblát.

Ez akkor lehet probléma, ha egyéni felhasználói táblát kíván használni a tagsághoz, de rossz táblanevet ad át a WebSecurity.InitializeDatabaseConnection metódusnak. Mivel a metódus alapértelmezés szerint nem okoz hibát, ha a megadott tábla nem létezik, és ehelyett létrehoz egy új táblát, úgy tűnhet, hogy az alkalmazás működik. Az egyéni felhasználói táblára (és a benne lévő mezőkre) támaszkodó alkalmazáskód azonban váratlan hibákkal meghiúsulhat.

Megoldás
Győződjön meg arról, hogy a InitializeDatabaseConnection metódusban átadott név megegyezik a tagsági adatbázisban lévő felhasználói profil táblával, vagy győződjön meg arról, hogy a autoCreateTables paraméter értéke hamis.

Probléma: "Nem sikerült létrehozni az SQL Server felhasználói példányát" hiba

Ha egy WebMatrix-webalkalmazás SQL Server Expresst használ, és IIS 7.5-öt futtat Windows 7 vagy Windows Server 2008 R2 rendszeren, előfordulhat, hogy egy hiba azt jelzi, hogy az SQL Server futásidőben nem tudja lekérni a felhasználó helyi alkalmazásútvonalát.

Áthidaló megoldás Győződjön meg arról, hogy az alkalmazás által futtatott Windows-fiók (általában a NETWORK SERVICE) olvasási/írási engedélyekkel rendelkezik az alkalmazás gyökérmappáihoz és az almappákhoz, például App_Data. Részletesebb információ az SQL Server Express felhasználói instancinggal és ASP.net webalkalmazás-projektekkel kapcsolatos problémákról érhető el.

Probléma: A Visual Studióban az egyéni könyvtárak névterei (DLL-ek) nem kerülnek automatikusan importálásra.

Ha egyéni szerelvényeket használ egy projektben a Visual Studióban, az ezekben a szerelvényekben deklarált névterek nem lesznek automatikusan importálva a tervezéskor. Ennek eredményeképpen előfordulhat, hogy az egyéni típusokra mutató hivatkozások a tervezéskor nem lesznek felismerve, és a Visual Studióban nem felismertként vannak megjelölve (hullámos kapcsolóval). Ez a probléma csak tervezési időben fordul elő a Visual Studióban; maga az alkalmazás megfelelően fut.

Megoldás
Adjon meg egy utasítást using (imports a Visual Basicben), amely a tervezéskor nem felismert entitásokra hivatkozik.

Probléma: A Visual Studio IntelliSense és a projektsablonok csak ASP.NET MVC 3-as verziójában érhetők el

A ASP.NET weblapok telepítése nem telepíti a Visual Studio eszközeit, például az IntelliSense-t és a projektsablonokat ASP.NET weblapok alkalmazásához.

Áthidaló megoldás Ha IntelliSense- és projektsablonokat szeretne használni ASP.NET Web Pages-alkalmazásokhoz a Visual Studióban, telepítse ASP.NET MVC 3 RC-t a webplatform-telepítőn vagy a különálló telepítőn keresztül.

Probléma: "<a segédosztály> nem található" hiba

A 3. bétaverzióra való frissítés után előfordulhat, hogy egy segédosztály (például az Facebook osztály) nem található. A 2. bétaverziótól kezdve a 3. bétaverzióig a segítők olyan csomagokba kerültek, amelyeket kifejezetten telepítenie kell. A meglévő webhelyek nem frissülnek úgy, hogy tartalmazzák ezeket a csomagokat; Ide tartoznak a \Dokumentumok\IISExpress vagy a \Saját dokumentumok\Saját webhelyek mappában található webhelyek. Ez a hiba különösen akkor jelenik meg, ha a Saját webhelyek (WebSite1) alapértelmezett webhelyét használja, amely tartalmazza a Twitter segédre mutató hivatkozást.

Megoldás
Megjegyzést fűzhet a webhely bármely segítőjéhez, futtassa a _Admin lapot, és telepítse a használni kívánt segítőket tartalmazó csomagot vagy csomagokat. A csomag telepítése után feloldhatja a segítőkre hivatkozó vonalakat.

Probléma: Előfordulhat, hogy az ASP.NET Razor 3. bétaverzió szerelvényeinek üzembe helyezése a Bin mappába nem működik a webhelyeken.

Ha egy ASP.NET Web Pages webhelyet helyez üzembe egy üzemeltetési webhelyen, és az ASP.NET Razor Beta 3 szerelvényeket a webhely Bin mappájába telepíti, akkor hibák léphetnek fel, beleértve a következőket:

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

Ez akkor fordulhat elő, ha a szolgáltató telepítette a ASP.NET 1. bétaverziójú weblapokat a kiszolgáló globális alkalmazásgyorsítótárába (GAC). A GAC-ben található szerelvények elsőbbséget élveznek a Bin mappában helyileg telepített szerelvényekkel szemben.

Megoldás Forduljon a tárhelyszolgáltatójához, és győződjön meg arról, hogy a megjelenő hibákat a szolgáltató verziói és a saját verziói közötti ütközés okozza. Ha igen, kérje meg a szolgáltatót, hogy frissítse az összeállításokat a kiszolgáló globális assembly tárolójában.

Probléma: Hírcsatornák vagy más külső adatok olvasása proxykiszolgálón keresztül

Ha a webhelyet futtató kiszolgáló egy proxykiszolgáló mögött található, előfordulhat, hogy konfigurálnia kell a proxyadatokat a Web.config fájlban, hogy képes legyen olvasni a webhelyén kívülről érkező információkat. Ha például a ReCaptcha segédet használja, a segéd kommunikál a reCAPTCHA szolgáltatással, de a proxykiszolgáló letilthatja. Hasonlóképpen, a ASP.NET weblapokon használt hírcsatornák, például a csomagkezelő által használt hírcsatorna proxykonfigurációt igényelhetnek.

Ha problémákat tapasztal egy külső szolgáltatás használata vagy a csomagcsatorna használata során, helyezze az alábbi elemeket az alkalmazás gyökér Web.config fájljába:

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

A proxykiszolgáló konfigurálásáról további információt az MSDN webhelyén található proxyelem< (Hálózati beállítások) című témakörben talál>.

Probléma: "Microsoft.Web.Infrastructure.dll nem tölthető be" hiba

Ha korábban telepítette az ASP.NET Web Pages Beta 1 verzióját Razor szintaxissal, majd telepíti a Beta 3 verziót, a GAC-ban minden megfelelő szerelvény telepítve van, kivéve Microsoft.Web.Infrastructure.dll. Ennek következtében ASP.NET Razor-lapok futtatásakor hibaüzenet jelenik meg, amely azt jelzi, hogy aMicrosoft.Web.Infrastructure.dll nem tölthető be.

Ez a probléma nem fordul elő, ha a Béta 3 kiadást tiszta számítógépre töltötte be.

Megoldás
Távolítsa el ASP.NET weblapokat a Vezérlőpulton. Ezután telepítse újra a Béta 3 kiadást.

Probléma: A .NET-keretrendszer 4-es verziójának eltávolítása letiltja ASP.NET razor szintaxissal rendelkező weblapokat

Ha eltávolítja a .NET-keretrendszer 4-es verzióját, majd újratelepíti, ASP.NET Razor-szintaxissal rendelkező weblapok le lesznek tiltva. A .cshtml kiterjesztésű lapok nem futnak megfelelően. ASP.NET weblapok regisztrálnak egy összetevőt a gépi gyökér Web.config fájlban, és a .NET-keretrendszer eltávolítása törli azt a fájlt. A .NET-keretrendszer újratelepítése telepíti a konfigurációs fájl új verzióját, de nem adja hozzá a ASP.NET weblapok szerelvényére vonatkozó hivatkozást.

Áthidaló megoldás A .NET-keretrendszer újratelepítése után telepítse újra ASP.NET weblapokat Razor-szintaxissal. Ez hozzáadja a következő elemet a Web.config fájlhoz a gép gyökerében, amely általában a következő helyen található:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (32-bit)

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config (64-bit)

<compilation>
  <assemblies>
    <add assembly="Microsoft.WebPages.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    <-- Additional assemblies here. -->

  </assemblies>
</compilation>

Probléma: A Bin mappában lévő ASP.NET szerelvényekkel korábban üzembe helyezett alkalmazások hibákat tapasztalnak

Az üzembe helyezés során a ASP.NET weblapok szerelvényeinek másolatai (például Microsoft.WebPages.dll) a kiszolgáló webhelyének Bin mappájába kerülnek. (Előfordulhat, hogy ez az üzembe helyezés során automatikusan történt, vagy mert a fejlesztő explicit módon másolta az összeállításokat.) A 3. bétaverzió telepítésekor azonban hibák jelennek meg, például olyan hibák, amelyek szerint bizonyos típusok nem találhatók. Ez azért fordul elő, mert számos ASP.NET weblaptípust áthelyeztek a Béta 3 kiadás különböző névtereibe.

Megoldás
Törölje az üzembe helyezett alkalmazás Bin mappáját, másolja az új szerelvényeket a mappába (vagy telepítse újra az alkalmazást), majd indítsa újra az alkalmazást.

Probléma: A bővítmény nélküli URL-címek nem találnak .cshtml/.vbhtml fájlokat az IIS 7 vagy az IIS 7.5 rendszeren

Az IIS 7-es vagy az IIS 7.5-ös verziójában az alábbihoz hasonló URL-címmel rendelkező kérések nem találnak .cshtml vagy .vbhtml kiterjesztésű oldalakat :

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

A probléma azért merült fel, mert az URL-újraírás alapértelmezés szerint nincs engedélyezve az IIS 7 vagy az IIS 7.5 esetében. A legcsekélyebb forgatókönyv az, hogy nem látja a problémát, amikor helyileg tesztel az IIS Express használatával, de azt tapasztalja, amikor üzembe helyezi a webhelyét egy üzemeltetési webhelyen.

Megoldás

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

Probléma: Webalkalmazás-projekt vagy ASP.NET MVC és ASP.NET weblapok használata ugyanabban az alkalmazásban

Ha ASP.NET weblapokat használt egy webalkalmazás-projektben vagy ASP.NET MVC-alkalmazásban, előfordulhat, hogy a WebPageHttpApplication nem található.

Megoldás
Ha ezt a hibát kapja, módosítsa azt az alaposztályt, amelyből az alkalmazás származik. A Global.asax fájlban módosítsa a következő sort:

public class MvcApplication :  WebPageHttpApplication { ... }

Ehhez:

public class MvcApplication :  HttpApplication { ... }

Ez lényegében megfordítja a razor szintaxissal rendelkező ASP.NET weblapok 1. bétaverziójának változását.

Probléma: Alkalmazás üzembe helyezése olyan számítógépen, amely nem rendelkezik telepített SQL Server Compact-lal

Az SQL Server Compact-adatbázisokat tartalmazó alkalmazások olyan számítógépen futtathatók, amelyen nincs telepítve az SQL Server Compact. A Microsoft WebMatrix 3. bétaverziója automatikusan átmásolja ezeket a bináris fájlokat, és végrehajtja a megfelelő Web.config fájlátalakításokat.

Áthidaló megoldás Ha ezeket a fájlokat át kell másolnia, és manuálisan kell végrehajtania a Web.config fájlmódosításokat, tegye a következőket:

  1. Másolja az adatbázismotor-szerelvényeket az alkalmazás Bin mappájába (és almappáiba) a célszámítógépen:

    • Másolja C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dlla\Bin mappába
    • Másolja C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* a következő helyre:\Bin\x86
    • Másolja C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* ide:\Bin\amd64
  2. A webhely gyökérmappájában hozzon létre vagy nyisson meg egy Web.config fájlt. (A WebMatrix 3. bétaverziójában ez a fájltípus akkor érhető el, ha az Összes gombra kattint a Fájltípus kiválasztása párbeszédpanelen.)

  3. Adja hozzá a következő elemet a <konfigurációs> elem gyermekeként (nem a <system.web> elemen belül):

<system.data>
  <DbProviderFactories>
    <remove invariant="System.Data.SqlServerCe.4.0"></remove>
    <add name="Microsoft SQL Server Compact Data Provider" 
      invariant="System.Data.SqlServerCe.4.0" 
      Description=".NET Framework Data Provider for Microsoft SQL Server Compact" 
      type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
  </DbProviderFactories>
</system.data>

Probléma: Az adatbázis- és WebGrid-segítők nem működnek a Visual Basic közepes megbízhatósági szolgáltatásában

Ha Visual Basic-et használ (.vbhtml fájlokat hoz létre), akkor a Database és WebGrid segítők nem fognak működni, ha az alkalmazás Közepes megbízhatóságra van állítva.

Megoldás
Ideiglenesen állítsa be az alkalmazást a Teljes megbízhatóság használatára.

SQL Server Compact

Probléma: A "Titkosítás" tulajdonság nem ismerhető fel

Az SQL Server Compact 4.0 nem ismeri fel az Encrypt osztály tulajdonságát SqlCeConnection . Ez a tulajdonság nem használható adatbázisfájlok titkosítására. A Encrypt tulajdonság elavult az SQL Server Compact 3.5 kiadásban, és csak a visszamenőleges kompatibilitás érdekében lett megtartva.

Megoldás
Encryption Mode Az osztály tulajdonságával titkosíthatja az SqlCeConnection SQL Server Compact 4.0-adatbázisfájlokat. Az alábbi példa bemutatja, hogyan hozhat létre titkosított SQL Server Compact 4.0-adatbázist a Encryption Mode tulajdonság használatával:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;");
engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=Password=;p;w;here;>;")
engine.CreateDatabase()

Egy meglévő SQL Server Compact 4.0-adatbázis titkosítási módjának módosításához tegye a következőket:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=Password=;p;w;here;>;");
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=Password=;p;w;here;>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=Password=;p;w;here;>;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=Password=;p;w;here;>;")

A titkosítatlan SQL Server Compact 4.0-adatbázis titkosításához tegye a következőket:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf");
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=;p;w;here;>;")

Probléma: Microsoft Visual C++ 2008 futtatókörnyezeti kódtárak szükségesek

Az SQL Server Compact 4.0 natív DLL-jeihez a Microsoft Visual C++ 2008 Runtime Librarys (x86, IA64 és x64), Service Pack 1 csomag szükséges.

Megoldás
Telepítse a .NET-keretrendszer 3.5 SP1-et. Ez telepíti a Visual C++ 2008 Futtatókörnyezeti kódtárak SP1-et is. A kódtárakat a következő helyről töltheti le:

Microsoft Visual C++ 2008 Service Pack 1 – Terjeszthető csomag – ATL biztonsági frissítés

Megjegyzés:

Vegye figyelembe, hogy a .NET Framework 2.0, 3.0 vagy 4 telepítése nem telepíti a Visual C++ 2008 Futtatókörnyezeti kódtárak SP1-et.

Probléma: Ha az SQL Server Compact a .NET-keretrendszer számítógépen való telepítése előtt van telepítve, a szolgáltató invariáns neve nincs regisztrálva a .NET-keretrendszer machine.config fájlban

Az SQL Server Compact olyan gépen telepíthető, amelyen nincs telepítve a .NET-keretrendszer, mert az SQL Server Compact megköveteli a .NET-keretrendszert. Ha sem a .NET-keretrendszer 3.5-ös, sem 4-es verziója nincs telepítve az SQL Server Compact telepítése előtt, az SQL Server Compact telepítője nem regisztrálja a szolgáltató invariáns nevét a machine.config fájlban. A machine.config fájlban található SQL Server Compact bejegyzésre támaszkodó alkalmazások sikertelenek lesznek. A machine.config invariáns névregisztrációs bejegyzése a következő példához hasonlóan néz ki:

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

Megoldás
Távolítsa el az SQL Server Compact 4.0 CTP1-et. Töltse le és telepítse a .NET-keretrendszer teljes verzióit a következő helyről:

Microsoft .NET Framework 3.5 Service Pack 1 (teljes csomag)
Microsoft .NET Framework 4.0-s kiadás (teljes csomag)

Ezután telepítse újra az SQL Server Compact 4.0 SP1-et.

Alkalmazások telepítése

Probléma: Az alkalmazás telepítése hosszú időt vehet igénybe, ha a felhasználó Dokumentumok mappája átirányítva van egy hálózati megosztásra

Megoldás
Nincs. Előfordulhat, hogy az alkalmazás telepítése eltarthat egy ideig, de megfelelően fog telepíteni.

Alkalmazások közzététele

Probléma: Előfordulhat, hogy a webhely nem működik a közzététel után, ha a "Cél URL-cím" mező nincs előtaggal http:// vagy https://

A Közzétételi beállítások párbeszédpanelen, ha a cél URL-címe nem kezdődik http:// vagy https://, akkor elképzelhető, hogy a webhely nem fog működni az üzembe helyezés után.

Megoldás
Győződjön meg arról, hogy a webhely közzététele előtt a Közzétételi beállítások párbeszédpanel cél URL-címe a következővel http:// kezdődik: vagy https://.

Probléma: A MySQL-adatbázisok közzététele a "Nem sikerült közzétenni az adatbázist" hibaüzenettel meghiúsul. Ez akkor fordulhat elő, ha a távoli adatbázis nem tudja futtatni a szkriptet."

A hiba több okból is előfordulhat. Ennek a hibának az egyik oka, hogy az adatbázisszkript egyetlen idézőjelet (') tartalmaz, és a cél MySQL-adatbázis alapértelmezett karakterkészlete nem UTF-8.

Megoldás
Állítsa be a távoli MySQL-adatbázis alapértelmezett karakterkészletét UTF-8 értékre.

Egyéb problémák

Probléma: A keresés/szűrés nem működik a Csoportok szerinti jelentésekben: Probléma típusa

Ha egy webhely jelentését futtatja, ha szöveget ír be a Szűrő URL-cím alapján mezőbe, és a Keresés gombra kattint, semmi sem történik. Ennek az az oka, hogy ez a vezérlő nem működik, miközben a jelentés Csoportosítási állapota problématípusra van állítva, ami az alapértelmezett érték.

Áthidaló megoldás A menüszalag Csoportosítása lapjának URL-címére kattintva csoportosítsa a bejegyzéseket a forrás URL-címe alapján. A bejegyzések szűréséhez használható szövegdoboz és gomb ebben az állapotban működik.

Probléma: A WCF-alkalmazások nem futnak az IIS Express használatával

A WCF-alkalmazások böngészése az alábbihoz hasonló hibát eredményez:

Nem sikerült betölteni a "Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fájlt vagy könyvtárat, illetve ezek valamelyik függőségét. A rendszer nem találja a megadott fájlt.

Ez azért fordul elő, mert az IIS Express bétaverziója alapértelmezés szerint nem támogatja a WCF-t.

Áthidaló megoldás Az alábbi áthidaló megoldások bármelyikét használhatja (a 2. kerülő megoldáshoz a Microsoft Windows Vista vagy újabb verzió szükséges):

  1. Másolja a Microsoft.Web.dll és Microsoft.Web.Administration.dll szerelvényeket a WebMatrix telepítési helyéről a WCF-alkalmazás tárolókönyvtárába . Alapértelmezés szerint a WebMatrix telepítve van a Microsoft WebMatrix almappában a rendszer Program Files mappája alatt.

  2. Microsoft Windows Vista vagy újabb rendszeren hozzon létre egy szimlinket a bin könyvtárban lévő szerelvényekhez az alábbi parancsokkal. (Ennek a megközelítésnek az az előnye, hogy nem hozza létre az alkalmazás-összetevők másolatát.)

    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. Telepítse a két assemblyt a GAC-ba. Emelt szintű parancssorból futtassa a következő parancsokat:

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

Probléma: A WebMatrix 3. bétaverziója nem tud bizonyos, emelt szintű feladatokat végrehajtani

A WebMatrix 3. bétaverziója nem tud bizonyos, jogosultságszint-emelést igénylő feladatokat végrehajtani, például további összetevőket telepít a következő helyzetekben:

  • Windows Vista vagy Windows 7 rendszeren olyan fiókkal jelentkezik be, amely nem rendelkezik rendszergazdai jogosultságokkal, és a felhasználói fiókok felügyelete (UAC) le van tiltva.
  • Microsoft Windows XP vagy Microsoft Windows Server 2003 rendszert használ.

Megoldás
A WebMatrix 3. bétaverziójában a legtöbb feladathoz nincs szükség rendszergazdai engedélyre. Azoknak, akik ezt teszik, rendszergazdaként is végrehajthatja a műveletet, vagy kövesse az alábbi lépéseket:

  • Windows Vista vagy Windows 7 rendszeren engedélyezze az UAC-t.
  • Windows XP rendszeren adja hozzá a felhasználót a Rendszergazdák biztonsági csoporthoz.

Ha a WebPlatform Installer 3.0 nincs telepítve, a Webhely a webgyűjteményből lehetőség le van tiltva.

Megoldás
Telepítse a Microsoft Web Platform Installer 3.0-t.

Probléma: Windows Server 2003 rendszeren az IIS Express nem indul el nem rendszergazda felhasználó esetén

Windows Server 2003 rendszeren, amikor megnyit egy oldalt vagy elindítja az IIS Express-t, az IIS Express nem indul el. Weblapok esetén egy hiba jelenik meg, amely azt jelzi, hogy az alkalmazást nem rendszergazda felhasználó indította el.

Megoldás
Indítsa el a WebMatrix 3. bétaverziót rendszergazda felhasználóként.

Probléma: A Google Chrome nem érhető el futtatási lehetőségként

A Google Chrome nem jelenik meg a Kezdőlap lap Futtatás csoportjában található böngészők listájában.

Megoldás
A Google Chrome egyes verziói nem regisztrálják magukat megfelelően a Windows Alapértelmezett programok funkciójával. Áthidaló megoldásként indítsa el a Google Chrome-ot, kattintson a Google Chrome testreszabása és vezérlése menüre, kattintson a Beállítások elemre, majd a Google Chrome alapértelmezett böngészővé alakítása parancsra.

Probléma: Az "Idegen kulcs" párbeszédpanel nem engedélyezi az elsődleges kulcs megadását

Az Idegen kulcs párbeszédpanelen nem adhatja meg az elsődleges kulcs nevét az elsődleges kulcstáblából.

Megoldás
Ez szándékos. Az elsődleges kulcs nevét nem kell megadnia az elsődleges kulcs táblából.

Probléma: A "Kapcsolatok" gomb le van tiltva

Az Adatbázisok munkaterület Tábla lapjának Kapcsolatok gombja le van tiltva az SQL Server Compact-adatbázisok esetében.

Megoldás
Nincs. Az SQL Server Compact nem támogatja a táblák közötti kapcsolatokat.

Probléma: A paraméteres SQL-lekérdezések kivételeket vetnek ki

Az SQL Server Compact 4.0-ban, ha nem ad meg olyan adattípust, mint például SqlDbTypeDbType a paraméteres lekérdezések paraméterei, akkor a lekérdezés futtatásakor kivétel történik.

Megoldás
Explicit módon állítsa be az adattípust az olyan paraméterekhez, mint a SqlDbType vagy DbTypea . Ez a BLOB-adattípusok (image és ntext) esetében kritikus fontosságú. Használja az alábbihoz hasonló kódot:

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

További információ

A WebMatrix 3 bétaverziójáról a következő webhelyeken talál további információt: