- Iseva ye-HTTP elula ku I-PowerShell Ivumela ukuhlola amawebhusayithi nama-API endaweni yasendaweni ngaphandle kokusebenzisa i-IIS ephelele noma ukusebenzisa ezinye izilimi.
- Ingqikithi isekelwe ku-System.Net.HttpListener, ithebula lokuqondisa, kanye nento yeseva enezindlela zokuqala, zokumisa, kanye nokunikeza okuqukethwe okungaguquki noma okuguquguqukayo.
- Ama-routing hook, ukutholwa kwe-MIME, ukuhluzwa kwemibuzo kanye nomzimba, kanye nokufunda amafayela ngendlela evikelekile kuletha ukuguquguquka kanye nokuphepha kuseva.
- Ukuze kukhiqizwe, i-PowerShell ihlangana ne-IIS kanye ne-Web Deploy ukuze zenze amasayithi abe ngokuzenzakalelayo, yolwazi kanye nemithetho yokudlulisela, okwenza kube lula ukweqa endaweni yangakini.

Uma usebenza naye Windows Futhi uma uhlola izinhlelo zokusebenza zewebhu, ama-API, noma ufuna nje ukukhonza amafayela ambalwa e-HTML ne-JavaScript, une- Iseva ye-HTTP elula ku-PowerShell yokuhlola kwendawo Kulula kakhulu. Awuzizwa njalo ufuna ukufaka uhlelo oluphelele lwe-IIS, noma ukusebenzisa... PythonAmaphakheji e-Node noma uhlobo lwe-XAMPP kuphela ukuze kuhlolwe ngokushesha.
Izindaba ezinhle ukuthi ngamathuluzi asevele efakiwe ohlelweni, kungenzeka ukuhlanganisa iseva encane kakhulu, eguquguqukayo futhi elula ukuyinakekela, kusukela kumafayela ayisisekelo kakhulu (akhonza amafayela angaguquki) kuya ezimweni eziyinkimbinkimbi kakhulu (ama-endpoints e-API, ukuhlaziya amafomu, ukulawula i-MIME, ukuphepha okuyisisekelo, njll.), konke ngaphandle kokushiya i-PowerShell.
Kungani usebenzisa iseva ye-HTTP elula ekuhlolweni kwendawo?

Uma uvula ifayela le-HTML ngokuchofoza kabili, isiphequluli sililayisha nge-schema. ifayela:// esikhundleni se-http:// noma i-https://Lokhu kuvame ukusebenza kahle ezintweni ezilula kakhulu, kodwa kuyaphela ngokushesha nje lapho ungena endaweni engathi sína.
Izibonelo eziningi zesimanje zokusetshenziswa kweJavaScript izicelo ezingavumelani (ukulanda, i-XHR, njll.) Futhi iziphequluli eziningana, lapho i-Chrome ihamba phambili, zisebenzisa imikhawulo eqinile yokuphepha ezinsizeni ezinikezwa kusuka kufayela://, ukuvimba izingcingo ze-AJAX noma ukufinyelela ezinsizeni ezithile ngezinqubomgomo ze-CORS nokunye okunjalo.
Ngaphezu kwalokho, ngokushesha nje lapho sekuqala ukusebenza ikhodi yeseva efana ne-PHP, i-Python, i-Node.js noma izinhlaka zewebhuUkuvula ifayela ngqo nje akusanele: udinga inqubo elalela echwebeni, ithole izicelo ze-HTTP, futhi izihumushele ezimpendulweni. Yilapho iseva yendawo ingena khona.
Kwezinye izilimi, ukuqala iseva yokuthuthukisa cishe kushesha kakhulu: i-python3 -m http.server 8000 Isetha iseva ye-Python eyisisekelo enomugqa owodwa wekhodi. Kuhlelo lwe-.NET/Windows, singafeza okuthile okulula ngendlela efanayo sisebenzisa i-PowerShell kanye nesigaba se-`server`. I-System.Net.HttpListener.
Le ndlela inenzuzo eyengeziwe: uma iningi lengqalasizinda yakho iyi-Windows, ukunamathela ku-PowerShell kuvumela noma yimuphi umphathi noma osebenza naye ukuthi... ukuqonda, ukubuyekeza nokugcina ikhodi yeseva ngaphandle kwesidingo sokufunda olunye ulimi.
Umqondo oyisisekelo: Ukuhambisa i-HTTP ku-PowerShell

Iningi lamaseva ewebhu lingabukwa njenge i-router ye-HTTP Ilalela echwebeni elilodwa noma ngaphezulu futhi, isikhathi ngasinye lapho isicelo sifika, inquma ukuthi izokwenzenjani ngaso ngokusekelwe endleleni (GET, POST, njll.) kanye nomzila.
Leyo "miyalo ye-HTTP" oyibona ku- izingodo noma kumadokhumenti—isibonelo THOLA /index.html o THUMELA /api/usuarios— Lezi zingaphathwa njengezintambo eziqukethe indlela nendlela. Ngamagama angokoqobo, ziyisihluthulelo sokunquma ukuthi iyiphi i-logic okufanele isetshenziswe.
Ku-PowerShell, imodeli elula kakhulu yokusebenzisa lokhu kuziphatha iyindlela elula kakhulu yokusebenzisa ithebula le-hash (isichazamazwi) lapho ukhiye kungumyalo ophelele we-HTTP (isibonelo, "GET /index.html") futhi inani yilokho esizokwenza uma leso sicelo sifika: kungaba ibhlogo lesikripthi nge-ad hoc logic noma ireferensi kufayela elingaguquki esifuna ukulisebenzisa.
Kusuka kulesi sikhumba, kungangezwa okwengeziwe. ukwandiswa: izikhonkwane ngaphambi nangemva komzila, umzila ozenzakalelayo lapho kungekho okufanayo okuqondile, ukuqagela kohlobo lwe-MIME ngokwesandiso, ukuguqulwa okuzenzakalelayo kwalokho umzila okubuyisela emzimbeni wempendulo, njll.
Lena yindlela "imephu" yemizila engachazwa ngayo, lapho okunye okufakiwe kubhalwe khona ama-endpoint aguquguqukayo (ezikhiqiza impendulo esheshayo) kanti ezinye zimane nje Amafayela e-HTML, CSS noma e-JS lokho iseva eyithumela kuklayenti njengoba injalo.
Amandla engeziwe angangezwa kulolo hlaka olufanayo: izingwegwe ngaphambi nangemva komzila, umzila ozenzakalelayo lapho kungekho ukufana okuqondile, ukuqagela kohlobo lwe-MIME ngokwesandiso, ukuguqulwa okuzenzakalelayo kwalokho umzila okubuyisela emzimbeni wempendulo, njll.
I-server core: i-HTTP listening loop
Ingxenye eyisisekelo yeseva elula yi- iluphu usebenzisa i-System.Net.HttpListenerLeli klasi le-.NET likuvumela ukuthi ulalele izicelo ze-HTTP ngaphandle kokusetha yonke i-IIS, ngendlela eqondile kakhulu.
Iphethini evamile iqukethe ukudala into I-HttpListenerBhalisa isiqalisi esisodwa noma ngaphezulu (isibonelo, "http://localhost:8080/"), qala umlaleli, bese ufaka iluphu elinde izicelo. Uma isicelo sifika, kutholakala umongo, isicelo siyahlungwa ukuze kwakhiwe umyalo (indlela + umzila) futhi ukulawula kudluliselwa ku-router.
Ukuze ugweme ukuvimba intambo ye-PowerShell, kuvamile ukuyisebenzisa I-GetContextAsync() kanye neluphu yokulinda encane engavimbi enesiphatho esingahambisani. Lokhu kuvumela iseva ukuthi iqhubeke nokusebenzisa eminye imisebenzi noma imiswe ngendlela elawulwayo ngaphandle kokulenga.
Into ikhishwe kumongo Isicelo (lonke ulwazi oluvela esicelweni esingenayo: izihloko, umucu wombuzo, umzimba, njll.) kanye nento Imphendvulo, okuyiyona esizoyigcwalisa ngokuqukethwe esikukhiqizayo (isimo se-HTTP, izihloko, uhlobo lokuqukethwe, umzimba, njll.).
Imininingwane ebalulekile ukuthi, uma indlela yokuqondisa isiqediwe, kufanele uhlale Vala impenduloNgaphandle kwalokho, iklayenti lizosala lilindile. Yingakho kuyinto evamile ukugoqa ukuphathwa kwesicelo ngasinye ngamabhulokhi. zama/ekugcineni okuqinisekisa ukuvalwa.
Guqula iseva ibe yinto engasetshenziswa kabusha
Ukusetha i-HttpListener "kancane" kulungile ekuhlolweni okusheshayo, kodwa uma uzosebenzisa kabusha le seva ngaphezu kweyodwa iskripthiKufanelekile ukukufingqa ku- Into ye-PowerShell ngezakhiwo zayo kanye nezindlela zayo.
Indlela evamile yokwenza lokhu ukudala umsebenzi wefektri, isibonelo Iseva Yewebhu Entshalokho kubuyisela into engabonakali enezakhiwo eziningana: i ukubopha (i-URL yesisekelo efana nethi "http://localhost:8080/"), ithebula lokuqondisa, isiqondisi sesisekelo lapho amafayela azokhonzwa khona, igama leseva elichazayo, njll.
Ungangeza izindlela zesikripthi kuleyo nto efanayo, njengokuthi Qala() y Ima()Indlela ethi Qala idala i-HttpListener, ibhalisa ukubopha, bese iqala i-listening loop; i-Stop imisa umlaleli, ivala izinsiza, bese ishiya iseva isesimweni esihlanzekile kumsebenzisi olandelayo. ibhuthini ikusasa
Lo mklamo "weseva njengento" ufanelana kahle nesitayela okugxile ezintweni ezimbalwa ngaphakathi kwe-PowerShellKwenza ikhodi ifundeke kalula futhi kukuvumela ukuthi ube namaseva amaningana azimele afakwe amachweba ahlukene noma iziqondisi eziyisisekelo uma kudingeka.
Ngaphezu kwalokho, ungagcina idatha kuleyo nto efanayo. izinkomba kwezinye izindlela ezisizayo (isibonelo, ukukhonza amafayela, ukuphetha i-MIME, ukuhlaziya izicelo, njll.), okwenza ikhodi yokuqondisa ibe yinhle kakhulu.
Umzila othuthukisiwe: ama-hook kanye nomzila ozenzakalelayo
Iseva ecwebezelisiwe kakhulu idinga izinga elithile umzila oguqukayoNgeke uhlale unomdlalo oqondile womyalo ngamunye we-HTTP, futhi awufuni ukuphinda i-logic kuzo zonke izindlela zemisebenzi evamile (amalogi, ukuqinisekiswa kwekhaya, njll.).
Kulokhu, kuyasiza kakhulu ukwelula ithebula lokuqondisa nge izinhlobo ezintathu zezingwegwe: ibhulokhi Ngaphambi, okwenziwa ngaphambi kokuthumela umzila; ibhulokhi Ngemva, okubizwa uma isicelo sesicutshunguliwe; kanye Umzila ozenzakalelayookusebenza njengohlelo B uma kungekho okufanayo ngqo kusichazamazwi.
Into ehlekisayo ukuthi wonke umuntu imiyalo Izinkinobho ze-HTTP ezivumelekile ziqukethe okungenani isikhala esisodwa (indlela yokuhlukanisa kanye nendlela), kuyilapho izinkinobho ezikhethekile ezifana Ngaphambi, Ngemva noma Okuzenzakalelayo Cha. Lokhu kuvimbela ukungqubuzana phakathi kwamagama e-hook kanye nemiyalo yangempela.
Ihuku Ngaphambi Ingenza imisebenzi yokusiza (isibonelo, ukubhalisa isicelo ngasinye), noma ibuyisele inani le-Boolean elibonisa ukuthi inqubo yokuqondisa ivunyelwe yini ukuqhubeka. Uma ibuya ingamanga, ingakwazi ukunqamula ukuphathwa kwaleso sicelo ngqo ku-loop yokulalela.
Ihuku Ngemva Isetshenziselwa ukwenza i-logic okufanele ihlale ifika ekugcineni (ukuhlanza, i-telemetry, i-metrics, i-traces, njll.) kungakhathaliseki ukuthi indlela ethile ihambe kanjani, kungcono futhi ukuthola ulwazi lomongo kanye nomyalo.
Ukuphathwa kokuqukethwe kanye nezinhlobo ze-MIME
Uma usebenza ngqo ne-HttpListener, awunabo abasizi abazenzakalelayo njengaku-IIS noma ku-Kestrel ukuze unqume ukuthi Uhlobo LokuqukethweNgakho-ke, kumele kuchazwe ngesandla. Uma ufuna iseva yakho inikeze amafayela ngendlela efanele, ukumepha kubalulekile. izandiso zefayela ezinhlotsheni ze-MIME.
Indlela enhle yokwenza lokhu ukwengeza indlela entweni yeseva efana I-ConvertExtension ethola isandiso (".html", ".css", ".js", njll.) bese ibuyisela umucu we-MIME ohambisanayo, isibonelo "text/html; charset=utf-8", "text/css; charset=utf-8" noma "application/javascript; charset=utf-8".
Ngale ndlela, noma yimuphi umzila okhonza okuqukethwe okungaguquki noma okuguquguqukayo ungabiza kalula $server.ConvertExtension(«.html») bese unikeza umphumela ku- Uhlobo Lokuqukethwe impendulo. Kwezinye izandiso ezingaziwa kuvamile ukusebenzisa i-"application/octet-stream" njenge-wildcard.
Kungumqondo omuhle futhi ukusetha uhlobo lokuqukethwe oluzenzakalelayo ku-loop yokulalelaIkakhulukazi uma iseva yakho igxile kakhulu kuma-API kunamakhasi ewebhu agcwele e-HTML. Inani elijwayelekile lingaba "text/plain; charset=utf-8" noma ngisho "application/json; charset=utf-8" uma cishe konke okubuyiselayo kuyi-JSON.
Lokhu kuziphatha kungahambisana nezihloko ezijwayelekile ezifana nokuthi Igcine Ukushintshwa o Isevaokusiza ukulungisa iphutha kusuka kusiphequluli njengoba iklayenti likwazi okwengeziwe ngempendulo kanye neseva yomsuka.
Ukwenziwa kwempendulo okuzenzakalelayo
Uma bekufanele uphathe ukubhala ngesandla ekusakazweni, ubale ubude bokuqukethwe, usethe ama-header, njll., kumzila ngamunye, ikhodi yeseva ibizogcwala i-boilerplate ephindaphindayoUkuze kugwenywe lokhu, kuyalulekwa ukwenza kube ngendlela efanayo indlela umphumela womzila ngamunye oguqulwa ngayo ube impendulo ye-HTTP.
Isu elilula ukuthi imizila ibuyele emuva kalula uchungechunge lombhaloI-central listening loop ithatha lelo nani futhi, uma lingenalutho noma lingenalutho, liyiguqula ibe amabhayithi e-UTF-8, bese liyinika Ubude Bokuqukethwe64Gcwalisa noma yiziphi izihloko eziyisisekelo ezingekho, bhala umzimba, bese uvala impendulo.
Ngesikhathi sokucela umzila, kuyalulekwa ukugoqa ikhodi ibe yibhulokhi zama/bambaUma kukhona okungahambi kahle ku-logic yokuqondisa, iseva ingabamba okuhlukile, isethe isimo se-HTTP sibe ngu-500, bese ibuyisela umlayezo ojwayelekile ofana nokuthi "Iphutha Leseva Yangaphakathi engu-500" kulandelwe imininingwane yephutha, ewusizo ngesikhathi sokuthuthukiswa.
Lokhu kunciphisa kakhulu ikhodi edingekayo endaweni ngayinye yokugcina: ezimweni eziningi, kwanele ukuthi umzila ukhiqize umucu one-JSON, i-HTML, noma umbhalo ocacile bese uwubuyisela, wazi ukuthi Amapayipi e-HTTP (ubude, ukufaka ikhodi, ukuvala) sekuxazululiwe kakade yiseva eyisisekelo.
Ezimweni lapho umzila unquma ukusingatha impendulo ngokuphelele (isibonelo, ngokubhalela ngqo ekusakazeni bese uyivala), ikhodi eyinhloko kumele ibekezelele Impendulo isivaliwe manje. Futhi ungazami ukubhala futhi; yingakho kubalulekile ukubamba nokuthulisa amaphutha athile lapho uvala.
Ukukhonza amafayela amile kusuka kufolda eyisisekelo
Ezimweni eziningi, okudingayo, kalula nje, khonza amafayela angaguqukiI-HTML, i-CSS, i-JavaScript, izithombe, njll. Ngale njongo, isici sivame ukuchazwa entweni yeseva. I-BaseDirectory, okubonisa ifolda ekudiski lapho okuqukethwe kuzofundwa khona.
Ukusebenzisa leso siqondisi njengereferensi, indlela ingangezwa kuseva. KhonzaIndlela ithola igama lefayela kanye nento ethi Response. Bese ifunda ifayela nge... Thola Okuqukethwe -Okungavuthiwe, ibala isandiso, inquma i-MIME nge-ConvertExtension, yabela uhlobo lokuqukethwe bese ibuyisela okuqukethwe ku-loop ephakathi ukuze ikuthumele kuklayenti.
Uma ifayela lingekho noma kukhona inkinga yokulifunda, I-Serve inganikeza i-404 empendulweni bese ubuyisela umlayezo owenziwe ngokwezifiso othi "404 Not Found". Lokhu kwenza kube lula kakhulu imizila efuna ukunikeza okuqukethwe okungaguquki kuphela.
Elinye icebo elithakazelisayo ukuvumela inani elisetafuleni lokuqondisa ukuthi lingabi njalo ibhlogo lesikripthi. Uma ubona ukuthi umzila ukhomba ku- umucu wombhalo omele ifayelai-loop yokulalela ingashayela ngqo $server.Serve() ngaleyo ndlela esikhundleni sokusebenzisa ikhodi.
Ngale ndlela, isichazamazwi sendlela singaba nokufakwa okufana nokuthi "GET /" = "index.html", ngaphandle kokubhala okunengqondo okwengeziweFuthi ngisho nendlela ezenzakalelayo ingasetshenziswa njengebhulokhi encane yesikripthi ethola igama lefayela ku-URL bese idlulisela ku-Serve.
Ukufunda okuthuthukisiwe nokuvikelwa ezindleleni eziyingozi
Uma uqala ukukhonza imizila ekhiqizwa ngokuguquguqukayo, kubalulekile lawula ngokucophelela ukuthi yiziphi izindlela zesistimu yamafayela ezifinyelelekayoAwufuni ukuthi othile akwazi ukwenza ukuhlasela kokudlula endleleni njengokuthi "../" futhi afinyelele amafolda angaphandle kwe-BaseDirectory yakho.
Enye indlela eguquguqukayo yokubhekana nalokhu ukuvumela umakhi weseva ukuthi amukele i- i-scriptblock Reader (ongakukhetha)Uma umsebenzisi edlula eyodwa, lokho kuzoba nesibopho "sokuxazulula" indlela enengqondo (ingxenye ye-URL) eya endleleni yediski ebonakalayo, esebenzisa imithetho ayibona ifanele.
Uma isifundi esenziwe ngokwezifiso singanikezwanga, iseva ichaza ezenzakalelayo ethatha indlela, isuse izilayi eziholayo, iyihlanganise nesiqondisi sempande, bese izama ukuxazulula ifayela nge Indlela YokuxazululaUma ungakwazi ukuthola ifayela eliqondile, zama ezinye izindlela ezinjengokwengeza i-".html" noma ukufuna ifayela le-"index.html" ngaphakathi kwefolda.
Ngemva kwaleso sinqumo, kuyalulekwa ukuhlola izinto ezintathu: ukuthi indlela ayiyona engenalutho noma engavumelekile, ukuthi umphumela ukhomba ku- ifayela langempela (hhayi uhla lwemibhalo) nokuthi itholakala ngaphakathi kwe-BaseDirectory (eyokugcina ingaqinisekiswa ngokuthi "iqala ngendlela yempande" elula). Uma noma yikuphi kwalokhu kuhlola kwehluleka, kukhishwa okuhlukile okubonisa indlela engavumelekile.
Indlela Khonza Lo Mfundi usetshenziselwa ukuthola umzila wokugcina ongokoqobo kanye nokuqukethwe. Lokhu kukuvumela ukuthi uhlukanise ngokucacile izici zokuphepha kanye nesisombululo sendlela ekulethweni kwedatha kuklayenti.
Izicelo zokuhlaziya: umucu wombuzo nomzimba
Uma uzokhonza i-HTML engaguquki kuphela, ukufunda amafayela kwanele, kodwa ngokushesha nje lapho usetha i-API noma amafomu okucubungula, udinga... finyelela amapharamitha e-GET kanye ne-POST kalula ukusuka emizileni.
Ukuze wenze lokhu, indlela ivame ukungezwa entweni yeseva. I-ParseQuery ukuthi, kusukela entweni ethi Request, isebenzisa ithuba Isistimu.Iwebhu.HttpUtility.ParseQueryString ukuguqula umucu wombuzo ube yiqoqo lenani legama elilula kakhulu ukuliphatha ku-PowerShell.
Ngezicelo (i-POST, i-PUT, njll.) enye indlela iwusizo njenge I-ParseBodyLe ndlela iqala ngokubheka ukuthi isicelo sinayo yini into (i-HasEntityBody) nokuthi usayizi wayo mkhulu kuno-zero. Uma kunjalo, ivula umfudlana wokufaka, idale i-StreamReader enekhodi efanele, bese ifunda konke okuqukethwe.
Bese, kuye ngokuthi Uhlobo Lokuqukethwe uma kumenyezelwe esicelweni, kwenziwa isinqumo mayelana nokuthi yini okufanele yenziwe ngalowo mzimba: uma "isicelo/x-www-form-urlencoded", ihlaziywa njengokungathi iyintambo yombuzo; uma "isicelo/json", idluliswa GuqulaFrom-JsonUma "kuwumbhalo/xml", kuguqulwa kube yinto ye-XML; futhi uma ingahambisani nanoma yimaphi amaphethini aziwayo, ibuyiselwa njengentambo yombhalo ecacile.
Lezi zindlela zivumela imizila yeseva yakho ukuthi igxile ku- logic yebhizinisi, ukudlulisela into yeseva umsebenzi womshini ohlobene kakhulu nendlela idatha evela ngayo kuklayenti.
I-PowerShell ne-IIS: Uma udinga iseva ephelele
Iseva ye-HTTP elula ku-PowerShell ilungele ukuhlolwa kwendawo kanye nezinsizakalo ezincane zangaphakathi, kodwa ngokushesha nje lapho ufuna ukushicilela izinhlelo zokusebenza zewebhu ngendlela engathi sína Kubasebenzisi bangaphandle, sekuyisikhathi sokukhuluma nge-IIS namathuluzi afana ne-Web Deploy.
Ezindaweni ze-Windows Server (2008, 2012, 2016, 2019, 2022, njll.) ungasebenzisa i-PowerShell ukuze faka indima ye-Web-Server Ukusebenzisa imiyalo efana ne-Get-WindowsFeature kanye ne-Install-WindowsFeature, kanye nokwengeza amathuluzi okuphatha adingekayo. Uma usufakiwe, ungahlola isimo kusuka ku-Server Manager noma usebenzise omunye umyalo we-Get-WindowsFeature.
Ngemva kokufakwa, ukufinyelela i-"http://127.0.0.1" kusuka kuseva uqobo kufanele kubonise ikhasi le-IIS elizenzakalelayo, okuqinisekisa ukuthi konke kusebenza kahle. Kusukela lapha, amamojula e-PowerShell ayaqala ukusebenza. ukuphatha i-IIS (IISAAdministration), eziveza ama-cmdlets okudala amasayithi, ukuphatha ukubopha, ukuqala noma ukumisa amasayithi, njll.
Izikripthi ezinikezwe nge-Web Deploy, njenge Setha iSayithiForPublish.ps1Zikuvumela ukuthi udale isayithi lokushicilela ngokuzenzakalelayo, abasebenzisi abangebona abaphathi abanezimvume ezilungisiwe, amachibi ezinhlelo zokusebenza azinikele, kanye nokukhiqizwa kwamafayela e-.PublishSettings abese esetshenziswa amathuluzi afana ne-Visual Studio noma i-WebMatrix.
Imiyalo ye-PowerShell yokuphatha i-IIS
Uma usuyisebenzisile iseva ye-IIS, i-PowerShell iba umngane onamandla kakhulu dala amasayithi, uwavivinye, uwamise, noma uwasuse ngendlela ephindaphindwayo nengabhalwa phansi.
Ukuze udale ifolda ebonakalayo yesayithi elisha, usebenzisa Uhla Lwezinhlu Zohlobo Lwento Entshaokubonisa igama nendlela. Kunconywa ukuhlela okuqukethwe kwewebhu ngaphansi kwezindlela ezifana ne-"C:\inetpub\wwwroot\SiteName" ukuze kulondolozwe isakhiwo esihlelekile.
Ifayela lokuqala lesayithi ngokwalo (isibonelo, i- inkomba elula.htmlIngadalwa futhi nge-New-Item -ItemType File, bese ihlelwa ngesandla noma kusetshenziswa amanye ama-cmdlet uma ufuna ukwenza isizukulwane sibe ngokuzenzakalelayo.
Isinyathelo esilandelayo ukuhlobanisa leyo directory nesayithi elisha le-IIS. I-New-IISSiteukudlulisa igama lesayithi, indlela ebonakalayo, kanye nolwazi lokubopha. Isibonelo, ukubopha "*:8080:" kubonisa ukuthi isayithi lizolalela ku-port 8080 kuwo wonke ama-IP atholakalayo omshini.
Uma isayithi selidaliwe, ungahlola ukuthi liphendula kahle yini. ukufinyelela kusuka kusiphequluli ku-URL ehambisanayo (isibonelo, "http://server:8080/") nokuqinisekisa ukuthi okuqukethwe kwe-index.html yakho kuyaboniswa.
Ukuqala, ukumisa, nokususa amasayithi nge-PowerShell
Umjikelezo wokuphila kwewebhusayithi ngaphansi kwe-IIS ulawulwa kalula kusuka ku-PowerShell ngama-cmdlets afana nalawa I-Start-IISSite, I-Stop-IISSite y Susa-IISSite, ngaphezu kwalokho Thola i-IISSite ukuhlola isimo sayo samanje.
Isibonelo, i-Stop-IISSite ingasetshenziswa ngokubuza igama lesayithi, noma ngokulidlulisela ngqo ngepharamitha ye--Name. ukwenza ngokuzenzakalelayo ukuboshwa Akusekho eminye imibuzo ebuzwayo, ilungele ukusetshenziswa noma ukulungiswa kwezikripthi.
I-Start-IISSite isebenza ngendlela efanayo, futhi nge-Get-IISSite ungabhala wonke amasayithi akhona noma uhlunge ngamagama ukuze ubone ngokushesha izakhiwo ezifana nesimo (Kuqalisiwe/Kumisiwe) kanye nokubopha okulungiselelwe.
Uma unentshisekelo kusakhiwo esithile, njengezimbobo isayithi elilalela kuzo, ungasithola ku-PowerShell ngokufinyelela eqoqweni Izibopho kusukela entweni ebuyiswe yi-Get-IISSite, ekunikeza umbono ocacile wokuthi isayithi ngalinye lishicilelwa kanjani.
Uma sekuyisikhathi sokususa isayithi elingasadingeki, i-`Remove-IISSite -Name` ikuvumela ukuthi ukwenze ngqo, futhi i-modifier -Kuthiwani uma Kuwusizo kakhulu ekulingiseni ukusebenza nokubona ukuthi kuzokwenzekani ngaphambi kokwenza izinguquko ezibhubhisayo zangempela.
Ukufakwa kweWebhu, izizindalwazi kanye nokudluliselwa kwamanye amazwe
Ithuluzi le-Web Deploy lifaka izikripthi eziningana ze-PowerShell ezenzelwe ukwenza kube lula Ukushicilelwa kwesayithi elikude ku-IIS kanye nokudalwa kwezinsizakusebenza ezihlobene njenge-SQL Server noma izizindalwazi ze-MySQL, kanye nokucushwa kwemithetho yokudlulisela.
Izikripthi ezifana Setha iSayithiForPublish.ps1 Benza konke ngokuzenzakalelayo kusukela ekudaleni isayithi kanye nedamu lohlelo lokusebenza kuya ekwabeleni izimvume kumsebenzisi othize wokufaka, okuqinisekisa imodeli lapho lowo msebenzisi angashicilela khona ngaphandle kokuba umlawuli womshini.
Kumadathabheyisi e-SQL Server, kukhona iskripthi Dala i-SqlDatabase.ps1, edala isizindalwazi, ukungena ngemvume kanye nomsebenzisi onezimvume ze-db_owner kuleyo sizindalwazi, futhi engeza intambo yokuxhuma ephumayo kufayela le-PublishSettings elihlobene, elilungele unjiniyela ukuthi alisebenzise kumathuluzi akhe.
Ngokufanayo, Dala iMySqlDatabase.ps1 Lokhu kuhlanganisa icala le-MySQL, kukhiqiza isizindalwazi kanye nomsebenzisi onezimvume kuso, kanye nokubuyekeza amaphrofayili okushicilela. Kubalulekile ukubuyekeza izimvume lapha (isibonelo, uma ufuna ukuvumela ukufinyelela ngale kwe-localhost) ngokulungisa umyalo we-GRANT ohambisanayo kusikripthi ngokwaso.
Ekugcineni, Imithetho Yokwengeza Ukudluliselwa.ps1 Inesibopho sokusebenzisa noma ukulungisa imithetho yokudlulisela edingekayo ku-IIS ukuze i-Web Deploy isebenze kahle, idale ama-akhawunti athile esevisi futhi iwanike izimvume ezifanele phezu kokucushwa (applicationHost.config) kanye nokusebenza okuthile kokuphatha.
Amaseva endawo aphelele kanye nokuthuthela ekusingatheni
Ngale kwe-PowerShell ne-IIS, kuvamile kakhulu ukusetha ohlelweni lwewebhu amaseva endawo uhlobo lwe-WAMP, MAMP, LAMP noma i-XAMPPLawa maphakheji ahlanganisa i-Apache, i-PHP, ne-MySQL abe yi-installer eyodwa ukuze kube lula ukuhlola ama-CMS afana ne-WordPress endaweni yasendaweni.
I-logic iyafana: iseva yendawo iveza isayithi ngaphansi http://127.0.0.1 o http://localhostIfolda lapho ubeka khona amaphrojekthi akho (isibonelo, "C:\wamp\www\") isebenza njengempande yedokhumenti. Ifolda ngayinye engaphansi ngokuvamile iyiphrojekthi yewebhu ehlukile, efinyeleleka ngama-URL afana ne-"http://localhost/mywebsite".
Uma ufuna ukuhambisa iphrojekthi ethuthukiswe endaweni uye kusevisi yokubamba bukhoma, inqubo evamile ihilela Khipha isizindalwazi (ngokuvamile kusuka ku-phpMyAdmin), cindezela amafayela ewebhu, uwalayishe kuseva ekude usebenzisa umphathi wefayela noma i-FTP, bese ungenisa isizindalwazi kusuka kuphaneli yokulawula yokubamba.
Ngemuva kwalokho eminye imininingwane idinga ukulungiswa, njenge- Ama-URL ewebhusayithi ngaphakathi kwesizindalwazi (ukushintsha i-localhost ibe yisizinda sangempela) kanye nemininingwane yokuxhumeka kumafayela okucushwa kwe-CMS (isibonelo, i-wp-config.php ku-WordPress, lapho igama lesizindalwazi, igama lomsebenzisi kanye nephasiwedi yendawo yokukhiqiza ichazwe khona).
Kuzo zonke lezi zimo, iphethini iyaphindwa: ukuba neseva ye-HTTP yendawo elungiselelwe kahle, kungaba ne-WAMP-type bundle noma ne- iseva elula eyakhelwe ku-PowerShellKusheshisa kakhulu ukuthuthukiswa nokuhlolwa ngaphambi kokushicilela noma yini.
Ekugcineni, ukuhlanganisa iseva ye-HTTP eyinkimbinkimbi kancane ku-PowerShell—ngokusebenzisa i-routing, ama-hooks, ukuhlaziya izicelo, kanye nesevisi yamafayela anganyakazi—ngamakhono e-IIS kanye ne-Web Deploy yokukhiqiza kukunikeza indawo ephelele kakhulu: Ilula ekuthuthukisweni kwendawo kwansuku zonke futhi iqinile ekusetshenzisweni kokugcinaKonke lokhu kufezwa ngokusebenzisa amathuluzi endawo e-Windows ecosystem ngaphandle kokuthembela ezinqwabeni zangaphandle.
Umbhali oshisekayo ngomhlaba wamabhayithi nobuchwepheshe ngokujwayelekile. Ngiyathanda ukwabelana ngolwazi lwami ngokubhala, futhi yilokho engizokwenza kule bhulogi, ngikubonise zonke izinto ezithakazelisayo kakhulu ngamagajethi, isofthiwe, ihadiwe, izitayela zobuchwepheshe, nokuningi. Inhloso yami ukukusiza ukuthi uzulazule emhlabeni wedijithali ngendlela elula nejabulisayo.


