rdb: Debugging Pre-Executed (classic) ASP-Open Text Web Solutions Usergroup e. V.

  • RedDot CMS-blogi
  • 15.11.2019
  • Fi

rdb: Debugging Pre-Executed (classic) ASP

ongelma

olen varma, että melko paljon jokainen RedDot CMS Web Solutions Management-Palvelinkehittäjä olisi törmännyt johonkin ennalta toteutettuun ASP: hen malleissaan, joka on epäonnistunut. Seurauksena turhautumista ei ole sisäänrakennettu menetelmä virheenkorjaus tai jopa vain saada jonkinlainen mielekäs Virheilmoitus pois CMS WSMS on yksi keskustelluimmista harmeja tuotteen. Toki, on olemassa Pre-Execute Debugger plug-in mutta käyttää sitä, muutokset on tehtävä RDServer.INI-tiedosto. Nämä muutokset voivat tehdä projektin käyttökelvottomaksi tai voi jopa kaatua RedDot CMS Web Solutions Management Server …err… server (olen kokenut molemmat skenaariot lukuisia kertoja). Jälkimmäinen tietenkin voidaan korjata uudelleenkäynnistyksellä, mutta jos tämä on kiireinen tuotantojärjestelmä, se ei vain ole käytännöllistä.

Kai ne virheet täytyy jotenkin saada pois järjestelmästä ja takaisin kehittäjälle?

ratkaisu

en tiedä, olenko ensimmäinen henkilö, joka ajattelee tätä, mutta en ole nähnyt siitä keskusteltavan aiemmin, joten toivottavasti tämä on hyödyllistä tietoa.

jokin Tausta

valmiiksi toteutettu ASP renderoidaan CMS WSMS: llä ennen sen siirtämistä IIS: lle suoritettavaksi. Tuloksena oleva koodi siirretään takaisin CMS WSMS: lle lisättäväksi sivulle. Vaikka et näe sitä, jos ASP epäonnistuu, IIS tuottaa 500 virheen. Valitettavasti tämä tieto 500-virheestä katoaa, kun tietoja siirretään CMS WSMS: n ja IIS: n välillä ja takaisin.

Anna mukautettu virhesivu

IIS-järjestelmässä on mahdollista määrittää mukautettu virhesivu jokaiselle WWW-palvelimessa esiintyvälle virhetyypille. Tätä käytetään perinteisesti tarjoamaan loppukäyttäjille mielekäs 404 sivun julkaistu verkkosivuilla. Voimme hyödyntää tätä toimintoa asettaaksemme mukautetun virhesivun 500 virheelle CMS WSMS-palvelimelle. Tämän lisäksi, ihmiset Microsoft ovat nähneet tiensä selväksi myös tarjota Virheobjektin, joka on saatavilla vain 500 virhe ja palauttaa joukko hyödyllisiä tietoja virhe. Näin voimme kaapata virhetiedot ja kirjata ne tiedostoon.

prosessi

ensin pitää luoda kansioita.

  1. luo CMS WSMS-kansiosi (CMS/ASP) alle kansio nimeltä ”PreExecute”.
  2. luo uuden kansion alle vielä kaksi ”lokeja”ja ” asp”. Koneen IUSR-tilillä pitäisi olla kirjoitusoikeus molempiin kansioihin.

seuraavaksi on asetettava RDExecute-ja PreExecute-asetukset.

  1. valitse projektissasi kohdassa ”administrate Project Settings” > ”Project” > ”General Settings” Toiminto-valikosta ”Muokkaa asetuksia”.
  2. Aseta ”Rdexecute and PreExecute settings” – kohdassa ”fyysinen polku ”arvoksi” C:\Program tiedostot \ RedDot\CMS\ASP\PreExecute\asp ”(tai polku kansioon, jos asennus on erilainen) ja ”näennäiskansio (IIS) ”kohteeseen” /CMS/PreExecute / asp/”

tarkista tässä vaiheessa, että esiselvitys toimii vielä projektissasi.

nyt luodaan mukautettu virheenkäsittelijä.

  1. luo ASP-tiedosto CMS/ASP/PreExecute / asp-kansioosi, kutsu sitä miksi haluat, vaikkapa Asperoriksi.asp.
  2. kopioi seuraava koodi tiedostoon:
    <% ' Create the error object. Dim objASPError Set objASPError = Server.GetLastError ' Write the error information to a file (formatting of the second argument is for readability only). WriteToFile "C:\Program Files\RedDot\CMS\ASP\PreExecute\logs\PreExecuteErrors_" & Year(Now) & Month(Now) & Day(Now) & ".log", " Date/Time: " & Now() & vbCrLf & " ASP Code: " & objASPError.ASPCode & vbCrLf & "ASP Description: " & objASPError.Description & vbCrLf & " Category: " & objASPError.Category & vbCrLf & " Column: " & objASPError.Column & vbCrLf & " Description: " & objASPError.Description & vbCrLf & " File: " & objASPError.File & vbCrLf & " Line: " & objASPError.Line & vbCrLf & " Number: " & objASPError.Number & vbCrLf & " Source: " & objASPError.Source & vbCrLf & "############################################################" & vbCrLf, True Function WriteToFile(FileName, Contents, Append) On Error Resume Next If Append = True Then iMode = 8 Else iMode = 2 End If Dim oFs, oTextFile Set oFs = Server.CreateObject("Scripting.FileSystemObject") Set oTextFile = oFs.OpenTextFile(FileName, iMode, True) oTextFile.Write Contents oTextFile.Close Set oTextFile = Nothing Set oFS = Nothing End Function %>

lopuksi meidän on määritettävä IIS.

  1. in Internet Information Services (IIS) Manager, select the folder under ”Default Web Site” (or whatever site you ’ re used for CMS WSMS) > ”CMS” > ”PreExecute” > ”asp”.
  2. Napsauta kansiota hiiren kakkospainikkeella ja valitse ”Ominaisuudet”.
  3. valitse” Mukautetut virheet ” – välilehti. Vieritä alaspäin, kunnes löydät ”500;100” HTTP-virhe-sarakkeesta.
  4. korosta se ja napsauta ” Muokkaa…”.
  5. Vaihda ”Message type:” muotoon ”URL” ja aseta ”URL:” muotoon ”/CMS/PreExecute/asp/ASPError.asp”

testaaminen

sen testaaminen on melko yksinkertaista. Olettaen, että pre-execution toimi aiemmin, sinun pitäisi pystyä lisäämään joitakin rikki ASP-koodi malliin (esim. <!Joorangepreexecute><%= function that doesnotexist() %><!/IoRangePreExecute>) ja esikatsele sivua. Sinun pitäisi saada standardi (Lue hyödytön) CMS WSMS virhe sivu, mutta sinun pitäisi myös saada lokitiedosto luotu CMS/ASP/PreExecute/lokit kansio yksityiskohtaiset tiedot ASP virhe, joka on tapahtunut.

Varoitukset

jos käytät ryhmitettyä CMS WSMS-järjestelmää, kannattaa tämän toimenpiteen kanssa olla varovainen. Kun yritin muuttaa pre-execution asetukset ryhmitelty CMS wsms ympäristö, se ei vain ei toimi, se myös otti alas julkaisemisen kaikki projektit. En ole tutkinut asiaa enempää tässä vaiheessa, jos ja kun teen, julkaisen havaintoni.

ASP.NET

edellä kuvattu menetelmä toimii vain klassiselle ASP: lle. Olisi hienoa, jos joku kuvaisi vastaavan prosessin ASP.NET-onko ottajia?

Write a Comment

Sähköpostiosoitettasi ei julkaista.