Ezt az oldalt archiváltuk

Ez az oldal most már archívum. Megtartjuk, hogy a tartalom elérhető legyen, de többé nem frissítjük. Az Orchard Dojo nevű másik oldalunkon azonban gyakran teszünk közzé Orcharddal kapcsolatos híreket, úgyhogy mindenképp nézd meg azt inkább. Ha pedig az Orchard fejlesztő cégünkkel, a Lombiq-kal kapcsolatos hírek érdekelnek, látogass el a weboldalunkra.

Web.configurálás Orchardra hangolva

Címkék: Orchard, IIS, üzemeltetés, Visual Studio, tipp, Web.Config

A Web.config fájlokat, az ASP.NET konfigurációs állományait nyilván senkinek sem kell bemutatni, úgyhogy most csak nézzük azt a néhány ezzel kapcsolatos tudnivalót, ami ahhoz kell, hogy Orchard portálunk vígan futkorászhasson a szerveren.

Az Orchard webalkalmazások Web.config fájlja az Orchard solution Orchard.Web projektjének gyökerében található (azaz a src/Orchard.Web/Web.config elérési út alatt). A lényegi beállításokat tehát ide kell írni, ami némileg problémás, ugyanis mivel a fájl az Orchard központi kódbázisának része, meg is változhat - de biztos, hogy ha az Orchard frissítésekor felülírjuk, akkor a benne lévő változtatásaink elvesznek, tehát azokat össze kell fésülni a frissített Web.configgal.

Alapvetően csupán három beállítás az, aminek helyes használatával egy lapbetöltésből tizedmásodperceket, magunknak pedig fejfájásokat spórolhatunk meg:

  • Trust level
  • Debug mode
  • Machine key

Az alábbiakban ezeket vesszük át röviden. Megjegyzés: most a nyers XML-t fogjuk látni, de jó hír azok számára, akiknek a markup language-ek gyomorgörcsöt okoznak, hogy mindezeket természetesen az IIS Manageren keresztül is konfigurálni lehet (amire kulturáltabb hosting szolgáltatónál shared hosting esetén is lehetőségünk van).

Trust level

Bár az Orchard, beleértve az összes függőségét és a beépített modulokat, elfut Medium Trust alatt is, mivel ekkor normál működésnél is kivételek keletkezhetnek, mindenképp ajánlott olyan tárhelyet választani, ahol Full Trust használható. Így természetesen Medium Trust alatt lassabban is fog futni az oldal. "Medium Trust sucks." - ezek Bertrand Le Roy, az Orchard projektmenedzserének szavai ,melyek pólófeliratként hamarosan piacra is kerülnek.

Full Trust használatához az alábbi sort kell a Web.confighoz hozzáadni:

<configuration>
  ...
  <system.web>
  ...
    <trust level="Full" originUrl=""/>

Ezt mindenképp tegyük meg, ha képes rá a tárhelyünk, mert különben előfordulhat, hogy oldalunk - alapbeállításként - mégis alacsonyabb trust levellel fut.

Debug on/off

Fontos, hogy ha nincs rá kifejezetten szükség, ne debug módban futtassuk oldalunkat a szerveren. Az Orchard Web.configja viszont alapértelmezetten tartalmazza a debug="true" attribútumot a compilation tagben. Ezt vagy eltávolítjuk (így azonban nem fogunk tudni localhoston sem debuggolni) vagy kihasználjuk azt, hogy lehetőség van a Web.config fájlok "transzformálására" (ahogy Hanselmann bácsi egyébként elég jól elmagyarázza egy blogpostjában). Ez utóbbihoz csak jobb kattintás kell a Visual Studioban a Web.configra, majd "Add Config Transforms". Ez létre is hozza a build targeteknek megfelelő Web.configokat. Ebből az érdekes a Web.Release.config, mely elvileg már tartalmazza is a következő sort:

<compilation xdt:Transform="RemoveAttributes(debug)" />

Ez nem túl meglepő módon eltávolítja a debug attribútumot, amikor Release módban fordítunk (és nyilván leginkább Release-be fordítunk, ha publikálni akarjuk az oldalt).

Ide tartozik még az is, hogy a customErrors elemet, mely RemoteOnly módban van alapértelmezetten, érdemes On-ra (de legalább RemoteOnly-ra) állítani a Release config fájlban:

<customErrors mode="On" xdt:Transform="Replace" />

Ez azt fogja eredményezni, hogy a szerveren a user legfeljebb egy semmitmondó YSOD-ot fog látni, ha minden kötél szakad, de semmiképpen sem kap majd információt a rendszer felépítéséről (pl. stack trace-t).

Machine key

Színes-szagos tutorial található a machine key beállításáról a hivatalos dokumentációban, ennek elmagyarázásával így inkább nem fárasztanánk a T. Olvasót. Annyit azonban fontos megjegyezni, hogy ha elosztott architektúrájú hosting környezetbe (azaz pl. cloud hostingba) költöztetjük az oldalunkat, akkor mindenképp ajánlott a machine key megadása. Amennyiben ugyanis a machine key dinamikusan generálódik, bármikor meg is változhat, ez pedig jellemzően bejelentkezni képtelen felhasználókkal (az Orchard alapértelmezetten a Forms Authentication-t használja felhasználókezelésre) jár.

Kiegészítés, lapzárta után: Az kimaradt, hogy végső soron egyébként az összes saját konfigurációnkat is elég mondjuk csak a Release fájlba, transzformációként írni. Nyilván ennek csak akkor van igazán értelme, ha nincsenek közös saját beállítások más változattal, pl. a Debuggal is, mert akkor a sok kopipésztelés helyett érdemes inkább mégis a központi Web.config-ot szerkeszteni és inkább frissítéskor visszaállítani a saját beállításokat. Az Orchard Magyarország Web.Release.config-ja többek között az alábbi konfigurációt tartalmazza, a Web.config érintetlenül hagyásával.

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <trust level="Full" originUrl="" xdt:Transform="Insert" />
    <customErrors mode="On" xdt:Transform="Replace" />
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

A Web.Debug.config pedig az alábbi:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <customErrors mode="Off" xdt:Transform="Replace" />
  </system.web>
</configuration>

Mellesleg emitt egy jó kis eszköz a transzformáció tesztelésére.

Nincsenek hozzászólások