Orchard-os oldal publikálása: Web Deploy
Íme az Orchard vs. IIS trilógia második epizódja!
Az előző rész tartalmából: IIS 7.5-ben új AppPool létrehozása, Default Web Site lekapcsolása a 80-as port használatához, új site létrehozása és összekapcsolása az Orchard.Web könyvtárral.
Az előző rész itt olvasható.
Lássuk, hogyan tudjuk weboldalunkat egy távoli szerveren beállított IIS-site-ba feltölteni. Először is hajtsuk végre az előző bejegyzésben leírt lépéseket egy különbséggel: az oldal forrását nem az Orchard.Web könyvtárra állítjuk (hiszen még nincs a szerveren semmi), hanem hozzunk létre a C:/inetpub/ alá egy tetszőleges könyvtárat, legyen a mi esetünkben ez a "KókuszWeb".
Most pedig úgy, ahogy a főzőműsorokban lenni szokott, a két órán sülő kókuszos pitét egy perc alatt elkészítettük: a szerveren rendelkezünk egy AppPool-lal és a benne futó oldallal, ami még nem tartalmaz semmit, töltsük hát fel tartalommal!
Indítsuk el az Orchard-os oldalunk Visual Studio solution-jét. Az Orchard.Web projekt jobb-klikk menüjében válasszuk a Publish...-t. A felső listából válasszuk a <New...>-t egy új profil létrehozásához, majd adjuk meg a profil nevét, pl. "KókuszPublish" és töltsük ki a további adatokat:
- Publish method: Web Deploy
- Service url: https://<ip vagy domain>:<port>/MsDeploy.axd, például:
- https://12.34.56.78:910/MsDeploy.axd
- https://kokuszospite.hu:910/MsDeploy.axd
- Site/application: a site neve, amelyet az IIS-ben létrehoztunk, példánkban: "KókuszSite"
- A további két checkbox maradjon alapértelmezett értéken, tehát a "Mark as IIS..." jelöletlenül, "Leave extra files..." bejelölve
- Allow untrusted certificate: pipa
- User name: a szerveren lévő felhasználói fiókunk neve
- Password: a felhasználói fiók jelszava
- Save password: pipa
A profil mentéséhez kattintsunk az ablak jobb felső sarkában lévő Save gombra.
Publish előtt érdemes "elérhetetlenné" tenni az oldalt, hogy a felhasználói interakciók ne okozzanak hibát a feltöltés során (például az adatbázis feltöltése közben valaki ír az üzenőfalra, amely beíródik az adatbázisba). Ennek egy felhasználóbarát módja, hogy a publish idejére aktiváljuk az App_Offline-t, erről a módszerről egy korábbi bejegyzésünkben esett szó.
Ezután a Publish gombra kattintva el is indul a fordítás, majd a feltöltés!
Megjegyzés: a "Leave extra files on destination" checkbox állapota azt határozza meg, hogy publish-kor azok fájlok, amelyek a publish package-ben nem szerepelnek, törlésre kerüljenek-e vagy sem. Tehát ha be van jelölve, az "extra fájlok" megmaradnak.
2. megjegyzés: publish-kor a fordítás után létrejön a Deployment Package, ami egy zip fájl, benne az Orchard.Web mappa található (lefordítva). Ha esetleg kézzel szeretnénk az oldalt felmásolni a szerverre, ez a zip fájl tartalmaz mindent, amire szükségünk van. Alapértelmezetten az Orchard.Web könyvtáron belül 3 szint mélyen jön létre, de ha szeretnénk, hogy máshol jöjjön létre a csomag, akkor a következőt kell tennünk: Orchard.Web projektre jobbkilikk - Properties - bal oldali menüben Package/Publish Web - majd a "Location, where package will be created:" alatt tallózzuk be a kívánt elérési útvonalat.
Saját példánkból okulva egy további hasznos funkciót is bemutatnánk, ez az URL Rewrite. Nem tesz mást, mint átalakítja a megjelenített URL-t, mi esetünkben ezt a "www." eltávolítására használjuk, illetve az IP-cím alapján érkező kérések esetében alakítjuk át az URL-t a domain névre. Az URL Rewrite modul a Web Platform Installer-ből telepíthető.
Az URL Rewrite beállítása nem bonyolultabb, mint az eddigiek: a site beállításai között az IIS szekcióban válasszuk az URL Rewrite-ot, adjunk hozzá és egy új Rule-t. A megjelenő lehetőségek közül válasszuk a SEO alatt található "Canonical domain name" opciót, adjuk meg a kívánt domain nevet (példánkban: "kokuszospite.hu") és készen is vagyunk.
A következő részben telepítjük és konfiguráljuk az SMTP szervert a megfelelő Windows tűzfal és Orchard.Email beállításokkal együtt.
Wolf mondta
Egy apró, ám lényeges részlet (amely kimaradt az írásból, de saját bőrömön tapasztaltam), hogy Publish-kor figyeljünk arra, hogy a compile mode "Release" legyen. Nem mindegy, hogy 1GB-t töltünk fel (feleslegesen), vagy 50MB-ot. :)